Angular 如何使用[(ngModel)]选择器属性';路径';?

Angular 如何使用[(ngModel)]选择器属性';路径';?,angular,typescript,angular6,Angular,Typescript,Angular6,我正在努力解决这个问题,我需要访问一个嵌套的JSON对象数组,比如说数据。我需要访问嵌套在下面的密钥: let data=[{'foo':{'bar':'value'},'boo':'baa'}] 现在我们可以使用data['boo']来获取字符串'baa'。但是要获得字符串“value”,我们不能使用数据['foo.bar']。现在的问题是该值可以是3级或2级或直接可用。我想要一种访问数据['foo.bar']或数据['a.b.c']的方法。这把钥匙是我从别处传来的。因此,我相信NgModel

我正在努力解决这个问题,我需要访问一个嵌套的JSON对象数组,比如说数据。我需要访问嵌套在下面的密钥:

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

现在我们可以使用data['boo']来获取字符串'baa'。但是要获得字符串“value”,我们不能使用数据['foo.bar']。现在的问题是该值可以是3级或2级或直接可用。我想要一种访问数据['foo.bar']或数据['a.b.c']的方法。这把钥匙是我从别处传来的。因此,我相信NgModel中的路径选择器是实现这一点的关键。我传递的键是动态的,所以如果有一个嵌套的键,我必须为我不想要的键编写一个不同的函数


您可以通过使用Javascript eval方法轻松实现这一点


签出为什么不使用reduce的
split

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

显然,您应该在泛型函数中,或者甚至是在
PipeTransform
中,防止空指针

所以这里的数据就是一个例子,事实是它可以是任何东西,它的动态含义可能是3级以下,即{a:{b:{c:'heyhi'}所以我要去接heyhi,我必须把条件放在它不确定的地方。如果你得到了我,为什么你不能使用
[(ngModel)]=“data.foo.bar”
?数据是我的对象数组,foo.bar是从其他地方传递的字符串,可以是任何东西,所以我必须始终拆分它,而且它不是静态的,它可以是“boo”,这样数据['boo']或者它可以是数据['foo.bar'],或者它也可以是3级