.net - 访问其他对象类中对象的属性
问题描述
我的 angular7 应用程序中有 2 个对象类,其中填充了数据 - 员工和公司(数据通过 Web api 从数据库接收)。员工有字段 - emp_id、姓名、姓氏和公司对象。公司有 - c_id、company_name、电话。我可以使用“emp_id”、“name”和“surname”在表中显示员工-emp_id、姓名和姓氏数据,但是当尝试显示员工公司时,显示的结果是“[object Object]”,但我想显示公司名称。
如果通过 postman 等程序查看来自 web api 的数据,则公司对象会正确显示在员工对象中。
我曾尝试使用这些组合来访问公司名称 - “company.company_name”、“company{company_name}”、“company(company_name)”,但这些都不起作用。
这是我的角度课程
export interface employee
{
emp_id: number;
name: string;
surname: string;
company: Company;
}
export interface company
{
c_id: number;
company_name: string;
phone: string;
}
使用 http.get 填充对象,并保存在数组中
public apartments:any [];
public houses:any [];
getEmployees(): Observable<Employee[]>
{
return this.http.get<Employee[]>('http://localhost:60962/api/employees');
}
getCompanies(): Observable<Company[]>
{
return this.http.get<Company[]>('http://localhost:60962/api/companies');
}
在初始化时订阅
ngOnInit()
{
this.getEmployees()
.subscribe(data => this.apartments = data);
this.getCompanies()
.subscribe(data => this.houses = data);
}
解决方案
首先,接口应该以大写字母开头:
export interface Employee {
emp_id: number;
name: string;
surname: string;
company: Company;
}
export interface Company {
c_id: number;
company_name: string;
phone: string;
}
然后简单地声明一个像这样的对象:
public test: Employee = {
emp_id: 0,
name: "test",
surname: "test2",
company: {
c_id: 12,
company_name: "cmp name",
phone: "+665589898"
}
}
在您的 html 中,您可以简单地执行以下操作:
{{test.name}}
{{test.company.phone}}
在您的代码中,您的interface
公司以低“c”开头,而您在对象中声明了“C”
工作示例:https ://stackblitz.com/edit/angular-joap5a?file=src%2Fapp%2Fapp.component.html
推荐阅读
- sql-server - 在 SQL Server 存储过程中组合查询
- python - 为什么 API 作者会阻止 Python 中的位置参数?
- javascript - 如何访问存储在不同js文件中的数组
- linux - Eclipse 工作区作为项目的系统根引用
- ios - swift iOS:在应用程序文档文件夹中创建 UIDocument
- python - 在 Python 中的 SQLAlchemy 中执行真正的原始 SQL
- html - 有没有办法逃避剪辑路径:从子元素?相对于剪裁背景定位的 IE 图像也会被剪裁
- asp.net-mvc - BundleConfig 返回 302 / 404
- android - DateFormat.getTimeInstance 没有格式化正确的语言环境
- sql - 处理 SAS 中的舍入误差