夹具适配器过滤

时间:2013-04-02 20:46:13

标签: ember.js ember-data

我目前正在编写一个依赖于夹具数据的应用程序(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。

1 个答案:

答案 0 :(得分:0)

我想我发现了自己的问题。 .find()方法不会同步返回完整对象,它们会异步填充,即使使用夹具适配器 - 毕竟这是有意义的。

我想正确的解决方案是将TM.Product.find({featured:1})作为我的模型返回 - 这在夹具适配器中没有实现。 ember-data的第11版并没有给我一个警告,但幸运的是12号。

最后我错误地期望.find()对夹具适配器同步返回结果导致了我的问题。