我的控制器中有以下代碼。它首先根據搜索屬性過濾一組結果,然後對結果進行排序。Ember.js連續計算屬性的正確語法
results: function() {
var searchTerm = this.get('searchTerm'),
results = this.get('content');
if (searchTerm) {
results = results.filter(function(item) {
return item.get('name').toLowerCase().indexOf(searchTerm.toLowerCase()) > -1;
});
}
}.property('content', 'searchTerm',),
sortedResults: Ember.computed.sort('results', 'sortProperties'),
sortProperties: function() {
var order = this.get('ordering');
if (order === 0) {
return ['name:asc'];
} else if (order === 1) {
return ['name:desc'];
}
}.property('ordering'),
模板遍歷sortedResults:
{{#each sortedResults as |job|}}
{{job-table-row model=job}} \t
{{/each}}
上述工作正常。我想最後將sortedResults設置爲切片函數來顯示有限數量的結果。我曾嘗試以下:
slicedResults: function() {
var sortedResults = this.get('sortedResults');
return sortedResults.slice(0,10);
}.property('sortedResults'),
然後遍歷slicedResults:
{{#each slicedResults as |job|}}
{{job-table-row model=job}}
{{/each}}
在這種情況下,不返回任何結果。在切片函數中使用排序結果並將結果輸出到模板的正確方法是什麼?
你可以在'slicedResults'屬性中設置'console.log(this.get('sortedResults'))''以確保'sortedResults'中確實存在某些內容嗎? – QuantumLicht