单击按钮时刷新模型

Refreshing model when button is clicked

本文关键字:模型 刷新 按钮 单击      更新时间:2023-09-26

我想知道如何用来自不同控制器的参数刷新模型。基本上,我想根据一个参数刷新列表模型。参数"readstatus"实际上是FilterbuttonController中"Filter"的值。

当您单击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> &#xf107;</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**
        }           
    }
});
this.refresh();

应该是刷新所需的全部内容。

export default Ember.Route.extend({
  queryParams: {
    SOME_PARAM: {
      refreshModel: true
    }
  },
  model: function(params){
    console.log(params.SOME_PARAM);
  }
});

也可以添加到路由中,以指示查询参数是相关的,并且应该在查询参数更改时刷新。因此,我认为您可以更改查询参数,模型将以这种方式自动刷新。

http://guides.emberjs.com/v1.10.0/routing/query-params/