2016-05-10 30 views
0

一個子集使用餘燼2.5和灰燼-CLI-海市蜃樓0.2)燼2.5燼-CMI-海市蜃樓試圖獲得的集合

在我的海市蜃樓/ config.js,我試圖讓一個子集OFA收集,使用切片分頁目的)()函數

var books = schema.book.all().slice(startItem, endItem); 

,但我得到一個錯誤:

schema.book.all(...).slice is not a function 

我也試過,同樣的錯誤

var books = schema.book.all(); 
var items = books.slice(startItem, endItem); 

這裏是我的海市蜃樓/ config.js 出口默認功能(){ .... this.get( '/書',函數(架構,請求){

 const pageNumber = request.queryParams['page[number]']; 
     const pageSize = request.queryParams['page[size]']; 

     const startItem= (pageNumber - 1) * pageSize; 
     const endItem = (pageNumber * pageSize) - 1; 

     var books = schema.book.all().slice(startItem, endItem); 

     .... 

     return books; 
     }); 
    } 

它似乎slice()是ArrayProxy的一個函數..但是這可能沒有幫助,因爲與JSONAPISerializer

我有點失落,因爲所有我可以google谷歌涉及到Ember 1.13而不是Ember 2.5 ...

回答

3

這是b因爲集合是類似數組的,但不是真正的數組。正是由於這個原因,在下一個測試版本中,我們將公開一個具有底層數組的.models屬性。

現在,請嘗試在您的schema.book.all()集合上撥打.toArray(),然後致電slice

要利用串行層的優勢,確保從處理程序返回一個新的集合:

import Collection from 'ember-cli-mirage/orm/collection'; 

this.get('/books', (schema, request) => { 
    let books = schema.book.all().toArray().slice(...); 

    return new Collection('book', books); 
}); 
+0

謝謝,這就是我想......和有效,我得到一個子集「項目」東經但我不能返回它,因爲它不是一個集合...無論如何將其轉換回集合? – erwin

+0

是的,嘗試'從'ember-cli-mirage/orm/collection'導入集合; '返回新集合('書',書)' –

+0

griacias,obrigado,merci,dankeschön,... – erwin

相關問題