Ember 在组件中显示的简单数组

Ember simple array to display in component

组件中的简单数组,它将显示在选择器标记中。我无法让它工作。 firstSelector 不显示任何内容。

在component.js中:

  sortPropertiesAsc: ['value:asc'],
  selectors: ['model.modelObjects', 'model.location'],

  firstSelector: function(){
     const firstGroupObjects = this.get('selectors')[0];
     return Ember.computed.sort(firstGroupObjects, 'sortPropertiesAsc');
  }.property(),

在component.hbs

   <select onchange={{ action 'selectBrand' value="target.value" }}>
      <option value="" >Select company</option>
      {{#each firstSelector as |company|}}
         <option value={{company.id}} selected={{eq brand company.id}}>  {{company.value}}</option>
      {{/each}}
   </select>

如果我在 component.hbs 中这样写 firstSelector,它将起作用:

 firstSelector: Ember.computed.sort('model.modelObjects', 'sortPropertiesAsc'),

我怎样才能把它写成另一种方式(作为一个函数)

我不确定您的设置中的所有内容,但我立即注意到的一件事是,如果您希望 computed property 根据 selectors 的更改触发,您我想要这样的东西。

  firstSelector: Ember.computed('selectors', function() {
     const firstGroupObjects = this.get('selectors.firstObject');
     return Ember.computed.sort(firstGroupObjects, 'sortPropertiesAsc');
  })

如果 sortPropertiesAsc 更改了您也想添加的值

  firstSelector: Ember.computed('selectors', 'sortPropertiesAsc', function() {
     const firstGroupObjects = this.get('selectors.firstObject');
     return Ember.computed.sort(firstGroupObjects, 'sortPropertiesAsc');
  })