Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/sorting/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sorting controller中的ember.js排序模型_Sorting_Ember.js_Controller_Computed Properties - Fatal编程技术网

Sorting controller中的ember.js排序模型

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

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: 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']),
  ...
}

你确定那是个错误吗?到底是什么不起作用?我知道你在风格指南中发布了什么,但这只是一个建议。