You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Angular ng模板中如何访问多层嵌套对象的属性?

访问失败原因

test.company.phone可正常访问,是因为phone是company的直接属性;你无法访问test.company.company_name.company_id的核心原因是:test.company.company_name是对象数组,而非单个对象,数组本身不存在company_id属性,直接链式调用自然拿不到值。
另外你贴的对象定义存在语法问题:company_name属性行末尾缺少逗号,会触发TS编译报错,需要补全。

正确访问方法

根据使用场景选择对应写法即可:

  • 访问指定位置的元素属性:通过数组下标取值,比如取第一个元素的company_id,模板中直接写:
    {{ test.company.company_name[0].company_id }}
    
    上述写法会返回第一个数组元素的company_id值101,需要第二个元素的属性就把下标替换为1。
  • 批量渲染所有数组元素的属性:用Angular内置的*ngFor指令遍历数组,示例:
    <ul>
      <li *ngFor="let comp of test.company.company_name">
        公司ID:{{ comp.company_id }},公司名称:{{ comp.name }}
      </li>
    </ul>
    
  • 空值容错写法:如果不确定嵌套路径上的属性是否可能为null或undefined,可以加Angular安全导航操作符?做容错,避免模板渲染抛错:
    {{ test?.company?.company_name?.[0]?.company_id }}
    
修正后的对象定义参考
public test: Employee = {
  emp_id: 0,
  name: 'test',
  surname: 'test2',
  company: {
    c_id: 12,
    company_name: [{ company_id: 101, name: 'abc' },{ company_id: 101, name: 'abc' }],
    phone: '+665589898',
  },
};

内容的提问来源于stack exchange,提问作者user2709

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.29 09:15:34