繁体   English   中英

观察数组并在ember.js中获得更改的值

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM