我想在.save()
之后(在控制器中)重新加载路线。目前,ember-data正在改变商店中的状态,但无论我尝试重新加载路由都没有用。问题是我想根据会话状态重新加载当前路由。
例如,如果我当前在status=opened
并且我关闭了对话,我想重新加载路由status=opened
。我注意到因为状态参数没有改变,所以路线没有重新加载!
我尝试过this.store.find('conversation', { status : currentStatus })
,但它不起作用。
我该怎么做?如果需要,我可以编辑更多细节。
我有这个模型钩子:
model: function(params){
return this.store.find('conversation', { status : params.status});
},
queryParams: {
status: {
refreshModel: true
}
}
当我想更改会话状态时,我正在使用以下内容:
this.store.find('conversation', conv.id).then(function(conversation){
conversation.set('status', 'closed');
conversation.save();
});
答案 0 :(得分:1)
过滤服务器和客户端,然后你不需要重新加载路线,它会便宜得多。
model: function(params){
return this.store.filter('conversation', { status : params.status}, function(rec){
return rec.get('status') === params.status;
});
},
http://emberjs.com/api/data/classes/DS.Store.html#method_filter