在控制器中访问模型集合 - Ember2.5
Accessing a model collection in controller - Ember2.5
在控制器上创建计算 属性 时尝试访问控制器模型时,出现以下错误:
model.uniqBy is not a function
app/controller/ticket.js
export default Ember.Controller.extend({
statuses: Ember.computed('model', function() {
var model = this.get('model');
return model
.uniqBy('status')
.map(function(i) { return i.status; })
.toArray();
}),
});
我给控制器的模型是从 this.store.findAll('ticket');
返回的集合,但试图遍历它似乎导致了上述错误。提供给模型的集合不应该是 Ember.Enumerable 对象吗?我是否应该尝试通过 DS.Store 访问集合(在这种情况下我不明白需要将模型传递给控制器)?
Ember.computed.uniqBy
A computed property which returns a new array with all the unique elements from an array, with uniqueness determined by specific key
请尝试使用此方法计算 属性
statuses: Ember.computed.uniqBy('model', 'status')
编辑
如果需要,您可以在此 属性 上使用 ember 计算地图来微调您的阵列,例如像这样
status: Ember.computed.map('statuses', function(status, index)
return status.toUpperCase() + '!';
})
另一种方法是计算 属性 使用此处描述的动态聚合语法
https://guides.emberjs.com/v2.6.0/object-model/computed-properties-and-aggregate-data/
所以Ember.computed('model.@each.status',函数()
希望对您有所帮助
在控制器上创建计算 属性 时尝试访问控制器模型时,出现以下错误:
model.uniqBy is not a function
app/controller/ticket.js
export default Ember.Controller.extend({
statuses: Ember.computed('model', function() {
var model = this.get('model');
return model
.uniqBy('status')
.map(function(i) { return i.status; })
.toArray();
}),
});
我给控制器的模型是从 this.store.findAll('ticket');
返回的集合,但试图遍历它似乎导致了上述错误。提供给模型的集合不应该是 Ember.Enumerable 对象吗?我是否应该尝试通过 DS.Store 访问集合(在这种情况下我不明白需要将模型传递给控制器)?
Ember.computed.uniqBy
A computed property which returns a new array with all the unique elements from an array, with uniqueness determined by specific key
请尝试使用此方法计算 属性
statuses: Ember.computed.uniqBy('model', 'status')
编辑
如果需要,您可以在此 属性 上使用 ember 计算地图来微调您的阵列,例如像这样
status: Ember.computed.map('statuses', function(status, index)
return status.toUpperCase() + '!';
})
另一种方法是计算 属性 使用此处描述的动态聚合语法
https://guides.emberjs.com/v2.6.0/object-model/computed-properties-and-aggregate-data/
所以Ember.computed('model.@each.status',函数()
希望对您有所帮助