2013-04-02 164 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