javascript - 将 sortBy ('name' ) 放在 Controller 的什么位置?

标签 javascript ember.js ember-data

以下 Controller 不会产生任何ships。如果我删除

model = model.sortBy('name');

它会生成所有 ships,但显然它们没有按 name 属性排序。

我该如何解决这个问题?

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('model.companies'),

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

最佳答案

我可能倾向于在这里使用计算属性,特别是 sort

import Ember from 'ember';

export default Ember.Controller.extend({
  selectedCompany: null,
  companies: Ember.computed.alias('model.companies'),
  shipSort: ['name:asc'],

  sortedShips: Ember.computed.sort('model.ships', 'shipSort')
});

奖金:working js-bin

关于javascript - 将 sortBy ('name' ) 放在 Controller 的什么位置?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29428858/

相关文章:

javascript - 将 jQuery 脚本转换为可重用函数的正确语法

javascript - 在 IE 中禁用源映射

model - Ember.js:如何保存模型

javascript - 如何阻止 VS 2013 生成 TypeScript 映射文件

javascript - Ember排序有很多关系

javascript - 如何在 route 使用服务属性?

javascript - Ember.js 路由映射

javascript - Ember 数据不允许 hasMany 关系中的重复条目

javascript - Ember Data 2.1.0 忽略我的 JSON 响应中的 links 属性

javascript - 从 ZIP 文件检索数据 - NodeJS