gpt4 book ai didi

arrays - Ember.js:使用@each 观察数组属性不起作用

转载 作者:行者123 更新时间:2023-12-04 18:41:35 24 4
gpt4 key购买 nike

我的理解是,观察 '@each' 意味着我正在观察数组中任何属性的任何更改,但它似乎不起作用。例如:

App.ArrayProxy = Ember.ArrayProxy.extend({

i: 0,

foo: function(){

console.log('foo called');

return ++this.i;

}.property('content.@each')

});

我也试过 .property('@each') 而不是 .property('content.@each') ,结果同样令人失望。

这是一个演示的jsbin: http://jsbin.com/hagar/5/edit

在演示中,更改数组列表本身(通过单击“删除最后一个”按钮)会触发“foo”计算属性的刷新,但更改数组中对象的属性不会。

有办法解决这个问题吗?

最佳答案

您需要使用 setter(或内置的 incrementProperty ),如果您关心名称何时更改,我添加了名称。

  foo: function(){
console.log('foo called');
return this.incrementProperty('i');
}.property('content.@each.name')

如果您不关心它在名称更改时递增,您可以使用 foo.[]这只会在添加/删除数组项时显示。
  foo: function(){
console.log('foo called');
return this.incrementProperty('i');
}.property('content.[]')

http://jsbin.com/bakoqawi/1/edit

关于arrays - Ember.js:使用@each 观察数组属性不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24892950/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com