我想知道如何使用来自不同控制器的参数刷新模型。基本上我想基于参数刷新列表模型。参数" readstatus"实际上是" Filter"的价值在FilterbuttonController中。
当您点击li时,模型应该刷新。我知道它看起来并不正确,但这就是应用程序现在的工作方式,我必须找到一种方法。有什么建议?代码如下。谢谢。
我有一个模特:
App.ListRoute = Ember.Route.extend({
model: function(readStatus){
return this.store.find('list', { status : readStatus});
}
我有一个模板:
<script type="text/x-handlebars" data-template-name="filterbutton">
<div class="filter-dropdown dd">
<button class="filter" {{ action 'toggleDd'}}><span id="current_text">{{ filter }}</span> </button>
{{#if ddVisible}}
<ul class="dropdowns">
<li {{ action 'filterConversations' 'All'}}></li>
<li {{ action 'filterConversations' 'Opened'}}><</li>
<li {{ action 'filterConversations' 'Closed'}}></li>
<li {{ action 'filterConversations' 'Unread'}}></li>
<li {{ action 'filterConversations' 'Read'}}></li>
</ul>
{{/if}}
</div>
</script>
此模板与以下控制器关联:
App.FilterbuttonController = Ember.Controller.extend({
ddVisible: false,
filter: "Filter",
actions: {
toggleDd: function(){
if (this.ddVisible){
this.set('ddVisible', false);
}
else{
this.set('ddVisible', true)
}
},
filterConversations: function(chosenFilter){
this.send('toggleDd');
this.set('filter', chosenFilter);
**//This is where the refreshing should be with the value of filter**
}
}
});
答案 0 :(得分:0)
this.refresh();
应该是刷新所需的全部内容。
export default Ember.Route.extend({
queryParams: {
SOME_PARAM: {
refreshModel: true
}
},
model: function(params){
console.log(params.SOME_PARAM);
}
});
也可以添加到路由以指示查询参数是相关的,并且应该在查询参数更改时刷新。所以我想你可以改变你的查询参数,模型会以这种方式自动刷新。