2014-01-28 50 views
1

我有一个商店,其中包含用户上传的所有图像。当他们上传一组新图片时,我会从上传者那里收到每张图片的ID。然后他们被移动到一个新的路线,他们需要用元数据更新这些新上传的图像。我想使用以前的商店,但会过滤除了他们上传的图片之外的所有内容。使用Ember.JS对ID范围内的模型进行过滤

所以问题是......如何仅通过一系列ID筛选商店。例如,如果我的上传器返回[30,31,32]。我希望该视图仅显示这些图像。

我认为路由器应该有这样的过滤器属性,但我不知道。

App.PhotosDetailsRoute = Ember.Route.extend({ 
    model: function(params) { 
    return this.get('content').filterBy('id', id >= params[0]); 
    } 
}); 

任何帮助,将不胜感激。

回答

2

您将要使用的过滤器功能,我还不能肯定是在这种情况下,什么样的内容,但是这是当我使用this.get你如何使用过滤器

model: function(params) { 
    this.store.find('photos'); 
    return this.store.filter('photos', function(item){ 
    return item.get('id') >= 10; // dummy parameter 
    }); 
} 
+0

(“内容”)我收到错误“无法调用未定义的方法”过滤器。我正在使用Ember Data 1.0.beta.1。所以我尝试使用存储,因为它尚未向端点发出请求。我最终收到一个布尔值,而不是将对象数据推送到模型中。任何想法我可以如何做到这一点不同? http://emberjs.jsbin.com/iveZuPax/3/edit –

+0

是的,我不知道什么内容是什么,我只是看到你在你的模型钩子中,并认为你一定是在别处分配它(例如像之前的模型钩子什么的)。如果您使用商店,则可以使用模型类型和函数调用过滤器,并且它会返回一个活动记录数组(这意味着它将随着新记录进入系统而更新)。 'filter'不会从服务器获取数据,所以在这种情况下,您需要在某个时刻调用find(在上面的例子中,我称它为之前)。 – Kingpin2k