[英]Observe array and get changed value in ember.js
这是组件:
export default Ember.Component.extend({
columns: []
_watchColumns: function () {
// console.log(changedValue);
}.observes('columns.@each.name')
// other code
});
我想在_watchColumns
方法中获取更改的值。 可能吗?
我认为这是不可能的。 解决方法可能是为每个项目使用一个组件。
我的栏目组件
//my-columns.js
export default Ember.Component.extend({
columns: null
});
//my-columns.hbs
{{#each columns as |column|}}
{{my-column value=column}}
{{/each}}
我的栏目组件
//my-column.js
export default Ember.Component.extend({
nameUpdated : Ember.computed('value.name', function() {
console.log(this.get('value.name'));
});
});
另一个提示:永远不要在组件中将属性设置为[]
或{}
,因为它将在组件的所有实例之间共享(例如静态属性-除非您当然希望这种行为)。 在您的情况下,用户将通过传递其自己的column对象来覆盖它,但是无论如何要知道这是有帮助的。 如果您的组件中需要数组,则可以执行以下操作:
export default Ember.Component.extend({
myArray : null,
init : function() {
this._super.apply(this, arguments);
this.set('myArray', []);
}
});
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.