2015-04-03 47 views
1

我很努力地理解控制器中承諾的工作原理。我想在我的模板中只顯示前10 sortedShips,但我找不到在我的控制器中使用slice(0,10)的方法。限制在控制器中模型的前10個元素

我怎樣才能限制sortedShips或只有前10個元素的新屬性?

的app/controllers/index.js

import Ember from 'ember'; 

export default Ember.Controller.extend({ 
    shipSort: ['name:asc'], 
    sortedShips: Ember.computed.sort('model.ships', 'shipSort').property('model.ships') 
}); 
+1

我猜你的意思'slice',不是'分裂'? – 2015-04-03 16:18:25

+0

是的,你的權利。我修剪'切片'。修復。 – wintermeyer 2015-04-03 16:53:40

回答

3

不知道什麼split()是,但Ember的computed.filter功能應該做的伎倆:

import Ember from 'ember'; 

export default Ember.Controller.extend({ 
    shipSort: ['name:asc'], 
    // You don't need the .property() here, Ember does that for you 
    sortedShips: Ember.computed.sort('model.ships', 'shipSort'), 
    firstTenShips: Ember.computed.filter('sortedShips', function(ship, index) { 
     return (index < 10); 
    }) 
});