Как использовать свойство селектора [(ngModel)] 'path'? - PullRequest
0 голосов
/ 31 октября 2019

Я борюсь с тем, что мне нужно для доступа к вложенному массиву объектов JSON, скажем, к данным. Мне нужен доступ к вложенному ключу, который находится ниже:

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

теперь мы можем сделать данные ['boo'], чтобы получить строку 'baa». Но чтобы получить строку 'value', мы не можем сделать data ['foo.bar']. Теперь дело в том, что значение может быть на 3 уровня ниже или на 2 уровня вниз или напрямую доступно. Мне нужен способ доступа к данным ['foo.bar'] или данным ['abc']. этот ключ я передаю откуда-то еще. Поэтому я считаю, что ключ path selector в NgModel является ключом для этого. Ключ, который я передаю, является динамическим, поэтому, если есть вложенный ключ, я должен написать другую функцию для той, которую я не хочу.

enter image description here

Ответы [ 2 ]

0 голосов
/ 04 ноября 2019

Почему бы вам не использовать split с Reduce?

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

Вы, очевидно, должны сделать это в универсальной функции или, возможно, даже в PipeTransform, где вы предотвращаете нулевые указатели

0 голосов
/ 04 ноября 2019

Вы можете легко сделать это с помощью метода Javascript eval.

Оформить заказ Stackblitz link

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...