对于ember.js,使用计算属性,我可以使用以下两种方法之一:
myProp: computed('properties', function () { /* do stuff. */ });
或者这样:
myProp: computed('properties.[]', function () { /* do stuff. */ });
这两种方法有什么区别?在什么情况下我应该使用哪一种?
jk9hmnmh1#
第一个(properties)只监视properties。因此,当您执行this.set('properties', ...)时,它将无效。第二个用于数组,当您移除或加入数组的项目时会失效:
properties
this.set('properties', ...)
this.set('properties', ...); this.properties.pushObject(...); this.properties.popObject(...);
所以当你只执行'properties'时,当你在数组中添加或删除一些东西时,它不会失效。
'properties'
1条答案
按热度按时间jk9hmnmh1#
第一个(
properties
)只监视properties
。因此,当您执行this.set('properties', ...)
时,它将无效。第二个用于数组,当您移除或加入数组的项目时会失效:
所以当你只执行
'properties'
时,当你在数组中添加或删除一些东西时,它不会失效。