2012-09-25 31 views
8

我需要知道總共存在多少行特定資源(App.User)。返回在餘燼數據find或findAll請求中總行數

我試着返回它作爲響應,但Ember抱怨沒有映射的屬性,並期待只有數組記錄(users: [ "john", "fred"])。我不想對服務器進行額外的查詢。

有沒有任何干淨的方式來達到這與Ember?

+0

+1,我在[分頁]的上下文中想知道這個問題(http://stackoverflow.com/questions/12482977/does-a-pagination-mixin-exist-for-ember-js-yet) – dechov

+0

準確!我需要知道結果集中有多少記錄,並將其用於分頁... – korCZis

回答

4

您無需對服務器進行額外的查詢。一旦你從服務器數據存儲中的數據,它在那裏停留,除非一些記錄是髒的,並在運行store.commit

所以,你說

users = App.User.find() 

,你可以簡單地做users.get('length'),讓您的記錄後,你會得到長度。當您這樣做時,不會生成對服務器的附加查詢。

4

如果你想要在一個句柄模板中,你可以這樣做{{this.length}}

0

我已經解決了這個問題,在我的適配器中實現handleResponse,並以Ember預期的方式修改響應。

比方說,我從服務器獲取類似這樣的迴應:

handleResponse實施看起來是這樣的:

handleResponse (status, headers, payload, requestData) { 
    let parsedPayload = { 
    users: payload.users, 
    meta: { 
     total: payload.count 
    } 
    }; 
    return this._super(status, headers, parsedPayload, requestData); 
} 

然後,我可以得到模型元數據的方式Ember documentation specifies it