2013-04-02 68 views
0

我目前正在編寫一個依賴燈具數據(REST API將遵循)的應用程序,我有一些問題或誤解。燈具適配器過濾

我在不同類別和我的索引路線中顯示了很多產品,例如應只出示含有特殊標誌的產品。

TM.IndexRoute = Ember.Route.extend({ 
model: function() { 
    return TM.Product.all().toArray().filter(function(item){ 
         return item.get('featured') === 1; 
        }); 
}}); 

我的問題:第一次加載索引路由後,模型是空的。切換到不同的路線並返回到索引路線按預期加載數據。我有與其他過濾相同的問題,不知道爲什麼會發生這種情況。它總是在沒有過濾器的情況下立即運行 - 所以我的綁定必須是正確的。

我使用的是最新版本的ember(1.0.0-rc2)和ember-data(rev 12)。

thx提前。

回答

0

我想我發現了我的問題。 .find()方法不會同步返回完整對象,即使使用燈具適配器,它們也會異步填充 - 畢竟這是有道理的。

我想正確的解決方案將返回TM.Product.find({featured:1})作爲我的模型 - 這不是在燈具適配器內實現的。幸運數據修訂版11沒有給我一個警告,但幸運的是第12版。

最後,我錯誤地期望燈具適配器上的.find()同步返回結果導致我的問題。

+0

只需跟進,即可按照預期提供模型,但必須通過將TM.Product.find()添加到ApplicationController的init方法來「預加載」所有產品。我認爲這是一個夾具適配器的問題,我會在連接REST後端後回到這個問題。 – msg