【问题标题】:Ember, #if item.value inside #each, when value changed, the page did not update [closed]Ember,#each里面的#if item.value,当值改变时,页面没有更新[关闭]
【发布时间】:2017-04-05 21:01:16
【问题描述】:
   setupController: function(controller, model) {
      controller.set('testItem', [
        Em.Object.create({name: 'aaa', hilight: false}),
        Em.Object.create({name: 'BBB', hilight: true}),
        Em.Object.create({name: 'ccc', hilight: false})
      ]);
    },

我在路由中设置了 setupController。

 changeTest: function(item){
    item.hilight = !item.hilight;
 },

还有控制器中的这个动作。 车把代码是这样的:

{{#each item in testItem}}
    {{#if item.hilight}}
        <div>
            <h4>{{item.name}}</h1>
        </div>
    {{else}}
        <div>
            <i>{{item.name}}</i>
        </div>
    {{/if}}
    <button {{action changeTest item}}></button>
{{/each}}

点击动作时动作函数执行成功,但页面无法更新。

那么,问题出在哪里?

【问题讨论】:

    标签: if-statement ember.js each helper


    【解决方案1】:

    您应该在changeTest 操作中使用setter 来更改hilight 的值。

    changeTest: function(item){
        item.toggleProperty('hilight');
     },
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-06-01
      • 1970-01-01
      • 1970-01-01
      • 2022-11-21
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多