EmberJS pushobject на объекте


Я пытаюсь настроить свойство для объекта,который будет объектом, как это.

Скажем, у меня есть свойство, называемое городами, и я хочу иметь значение населения, на нормальном объекте я бы сделал

cities: {
  'city1': 100,
  'city2': 200
}

Теперь, если я хочу добавить city3, я мог бы сделать

this.get('cities')['city3'] = 300

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

Так есть ли способ иметь это и быть наблюдаемым?

Спасибо

Редактировать даже с помощью

Это.набор ('города.city1', 100)

Не будет уведомлять об изменениях, поскольку я могу наблюдать @each, я использовал трюк с этим ответом, чтобы заставить его работать.

Наблюдать свойства вложенного объекта

2 2

2 ответа:

Использование = не вызовет никаких наблюдателей и привязок, вам нужно использовать set Пример:

this.set('cities.city3', 300);

Вы должны использовать set вместо =.

this.set('cities.city3', 300);