1

我正在观察这样的 Ember Data RecordArray:

myArray: function() {
  return MyRecord.find();
}.property(),

isDirtyChanged: function() {
  // Do something
}.observes('array.@each.isDirty');

我想对触发事件的特定记录执行一些操作。例如,如果记录 2 被修改:

MyRecord.find(2).set('my_property', 'some_value');

isDirtyChanged将被调用并使用记录做一些事情。如何获得对调用观察者的记录的引用,而不仅仅是整个数组?

4

1 回答 1

0

据我所知,没有办法说。文档也没有提到如何做到这一点。见这里这里

然而,它确实提到了这一点:

请注意,每次添加或替换元素都会调用 @each.property 观察者,并且不会使用特定的枚举项调用它。

通常,如果您向观察者函数添加一个objkeyname参数并调用obj.get(keyname),您将获得您正在观看的对象。但是因为这里的键名是array.@each.isDirty行不通的。

isDirtyChanged: function(obj, keyname) {
  obj is the targen here the object wacthing the array
  keyname is 'array.@each.isDirty'
  // Do something
}.observes('array.@each.isDirty');

我很想被证明是错误的!

这是一个小提琴尝试一些东西。

于 2013-08-31T18:26:25.137 回答