如何使用[(ngModel)]选择器属性'path'?

时间:2019-10-31 20:53:12

标签: angular typescript angular6

我正在为需要访问嵌套JSON对象数组(比如说数据)的东西而苦苦挣扎。我需要访问下面的嵌套键:

  

let data = [{'foo' : {'bar': 'value'}, 'boo' : 'baa'}]

现在我们可以执行data ['boo']以获得字符串'baa'。但是,要获取字符串“值”,我们不能做data ['foo.bar']。现在,问题是值可以是3级或2级或直接可用。我想要一种访问数据['foo.bar']或数据['a.b.c']的方法。我从其他地方传来的钥匙。因此,我相信NgModel中的 path 选择器是执行此操作的关键。我传递的密钥是动态的,因此,如果有嵌套的密钥,我必须为我不想编写的函数编写一个不同的函数。

enter image description here

2 个答案:

答案 0 :(得分:0)

您可以通过使用Javascript eval方法轻松地做到这一点。

结帐Stackblitz link

答案 1 :(得分:0)

为什么不将split与reduce一起使用?

const data = { foo: { bar: 'boo' } };
const key = 'foo.bar';
const boo = key.split('.').reduce((a, b) => a[b], data);

显然,您应该在防止空指针的通用函数甚至是PipeTransform中做到这一点