Как обновить конкретное свойство в массиве объекта?

#ember.js

#ember.js

Вопрос:

Скажите «Я инициализировал массив с предопределенными значениями, подобными этому» в моем controller

   data: A([
    {
      lat: 14.5619175,
      lng: 121.0197196,
      title: "Jazz Mall",
      open: false
    },
    {
      lat: 14.5660656,
      lng: 121.0295681,
      title: "Avalue Residences",
      open: false
    },
    {
      lat: 14.5661493,
      lng: 121.0282417,
      title: "Century City",
      open: false
    }
  ])
 

Теперь, как я могу обновить значения до чего-то вроде

title: "Jazz Mall" Для title: "Value has been change"

Комментарии:

1. Проверьте ответ, если он работает. Спасибо

2. Привет @rinoldsimon, поскольку его emberjs работает для меня, используя set

Ответ №1:

Если я правильно понимаю вопрос, то это можно сделать, просто изменив значение первого объекта массива,

 data.forEach((d) => {
  if (d.title === "Jazz Mall") {
    d.title = "Value has been changed"
  }
})
console.log(data);
 

Используя метод ember set

 set(this.get('data').objectAt(index), 'prop', value)
 

Комментарии:

1. Вы должны использовать set() , поскольку вопрос касается ember.js или, по крайней мере, добавьте предупреждение, которое вы должны использовать set() , если это свойство должно соблюдаться framework, а вы еще не используете отслеживаемые свойства.

2.Использование set работает для меня const temp_data = this.get("data"); set(temp_data[index], "open", !value);