Наблюдайте за изменением свойства объекта во вложенном массиве в Ember.js - PullRequest
0 голосов
/ 09 октября 2019

У нас есть такая структура данных

[[{foo:"12", bar:"34"}, {foo:"33", bar:"55"}], [{foo:"45", bar:"67"}]]

Как можно сделать вычисляемое свойство для наблюдения за изменением foo или bar?

1 Ответ

1 голос
/ 09 октября 2019

Обычно вы используете .@each.someProperty в вычисляемом свойстве для просмотра определенных свойств объекта в массиве, но в случае вложенных массивов (или вложенных объектов) вы не можете сделать .@each.@each.someProperty, потому что .@each работает только на один уровеньdeep.

Вам необходимо использовать промежуточные вычисляемые свойства, чтобы поднять внутренние объекты на один (или несколько) уровней и иметь другое вычисляемое свойство, отслеживающее их по очереди. Могут быть и другие способы связать вещи, но это довольно простой способ сделать это.

Вот пример twiddle , который демонстрирует это. Если вы откроете консоль, вы увидите, что отдельные вычисленные свойства записывают изменение.

Вы также можете использовать псевдоним , чтобы вытащить внутренние массивы / объекты на один или два уровня.

...