如何观察店铺collection
How to observe store collection
我有生成复选框列表的代码:
accountsCheckboxes: Ember.computed('accountsCheckboxes.@each', function(){
return this.model.accounts.map(row => {
return {
label: row.get('name'),
value: row.get('id')
};
})
}),
但在修改帐户 collection、添加或删除后,此计算 属性 不会刷新。我尝试找到如何处理事件,或如何观察商店 collection,但没有成功。
我在其他控制器中修改了这个模型collection。
通过观察您正在定义的 属性,您尝试做的事情有点令人困惑:
// accountsCheckboxes observes accountsCheckboxes?
accountsCheckboxes: Ember.computed('accountsCheckboxes.@each', ...)
这行不通,可能会导致无限的查找链。
您是要观察 model.accounts
吗?如果是这样,这就是您可以做的:
accountsCheckboxes: Ember.computed('model.accounts.@each.name', function() {
return this.get('model.accounts').map(row => {
return {
label: row.get('name'),
value: row.get('id')
};
})
});
请注意,您必须调用 this.get('model')
,而不是 this.model
,以确保您始终获得正确的数据。
或者,您可以使用 Ember.computed.map:
accountsCheckboxes: Ember.computed.map('model.accounts.@each.name', function(row) {
return {
label: row.get('name'),
value: row.get('id')
};
});
我有生成复选框列表的代码:
accountsCheckboxes: Ember.computed('accountsCheckboxes.@each', function(){
return this.model.accounts.map(row => {
return {
label: row.get('name'),
value: row.get('id')
};
})
}),
但在修改帐户 collection、添加或删除后,此计算 属性 不会刷新。我尝试找到如何处理事件,或如何观察商店 collection,但没有成功。 我在其他控制器中修改了这个模型collection。
通过观察您正在定义的 属性,您尝试做的事情有点令人困惑:
// accountsCheckboxes observes accountsCheckboxes?
accountsCheckboxes: Ember.computed('accountsCheckboxes.@each', ...)
这行不通,可能会导致无限的查找链。
您是要观察 model.accounts
吗?如果是这样,这就是您可以做的:
accountsCheckboxes: Ember.computed('model.accounts.@each.name', function() {
return this.get('model.accounts').map(row => {
return {
label: row.get('name'),
value: row.get('id')
};
})
});
请注意,您必须调用 this.get('model')
,而不是 this.model
,以确保您始终获得正确的数据。
或者,您可以使用 Ember.computed.map:
accountsCheckboxes: Ember.computed.map('model.accounts.@each.name', function(row) {
return {
label: row.get('name'),
value: row.get('id')
};
});