在.save()之后重新加载路由

时间:2015-06-09 21:14:48

标签: ember.js ember-data

我想在.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();            
});

1 个答案:

答案 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