按名称属性排序

Sort by name attribute

companiesships 都有一个 name 属性。但我不明白如何在此代码中使用 sortProperties

app/controllers/index.js

import Ember from 'ember';

export default Ember.Controller.extend({
  selectedCompany: null,

  companies: function(){
    var model = this.get('model.companies');
    return model;
  }.property(),

  ships: function(){
    var model = this.get('model.ships');
    return model;
  }.property()
});

app/routes/index.js

import Ember from 'ember';

export default Ember.Route.extend({
  model: function() {
    return {
      companies: this.store.find('company'),
      ships: this.store.find('ship')
    };
  }
});

如何按 name 属性对 companiesships 进行排序?

使用sortBy函数。像这样:

import Ember from 'ember';

export default Ember.Controller.extend({
  selectedCompany: null,

  sortedCompanies: function(){
    var model = this.get('model.companies').sortBy('name');
    return model;
  }.property('model.companies'),

  sortedShips: function(){
    var model = this.get('model.ships').sortBy('name');
    return model;
  }.property('model.ships')
});

记得把你观察到的属性放到.property()里面,不然模型变化的时候缓存不会失效。