ember.js 在计算属性中,'property.[]'和'property`有什么区别

xdnvmnnf  于 2022-11-05  发布在  其他
关注(0)|答案(1)|浏览(134)

对于ember.js,使用计算属性,我可以使用以下两种方法之一:

myProp: computed('properties', function () { /* do stuff. */ });

或者这样:

myProp: computed('properties.[]', function () { /* do stuff. */ });

这两种方法有什么区别?在什么情况下我应该使用哪一种?

jk9hmnmh

jk9hmnmh1#

第一个(properties)只监视properties。因此,当您执行this.set('properties', ...)时,它将无效。
第二个用于数组,当您移除或加入数组的项目时会失效:

this.set('properties', ...);
this.properties.pushObject(...);
this.properties.popObject(...);

所以当你只执行'properties'时,当你在数组中添加或删除一些东西时,它不会失效。

相关问题