Sorting controller中的ember.js排序模型
ember.js版本:2.18.0 型号:Sorting controller中的ember.js排序模型,sorting,ember.js,controller,computed-properties,Sorting,Ember.js,Controller,Computed Properties,ember.js版本:2.18.0 型号: export default DS.Model.extend({ name: DS.attr('string'), description: DS.attr('string'), songs: DS.hasMany('song') }) 控制器: export default Controller.extend({ sortBy: ['name:asc', 'description:asc'], sortedBands: com
export default DS.Model.extend({
name: DS.attr('string'),
description: DS.attr('string'),
songs: DS.hasMany('song')
})
控制器:
export default Controller.extend({
sortBy: ['name:asc', 'description:asc'],
sortedBands: computed.sort('model', 'sortBy')
}
ember给了我以下错误:
Only string, number, symbol, boolean, null, undefined, and function are allowed as default properties ember/avoid-leaking-state-in-ember-objects
错误是因为您正在将数组设置为对象(
Controller
)中属性(sortBy
)的默认值
您可以在init
hook中设置数组值
export default Controller.extend({
sortedBands: computed.sort('model', 'sortBy'),
init() {
this._super(...arguments);
this.sortBy = ['name:asc', 'description:asc'];
}
}
查看此链接了解更多信息:使用空js对象作为控制器变量的默认属性时,我遇到了相同的错误 Object.freeze()对我有用 解决问题的另一种方法:
export default Controller.extend({
sortedBands: Object.freeze(['name:asc', 'description:asc']),
...
}
你确定那是个错误吗?到底是什么不起作用?我知道你在风格指南中发布了什么,但这只是一个建议。