Ember bind-attr没有更新

时间:2014-09-01 13:01:02

标签: javascript ember.js handlebars.js

我有以下观点:

App.MyView = Ember.View.extend({
    isSet: false,
    layoutName: 'myview',
    click: function() {
        this.set('isSet', !this.get('isSet'));
    }
};

它的模板:

<i {{bind-attr class=":fa isSet:fa-check"}}></i> Toggle

click事件工作正常,并更新isSet(我可以在ember检查器中看到),但绑定的类没有添加。我的逻辑有什么不对吗?

3 个答案:

答案 0 :(得分:1)

在模板中使用view.isSet代替isSet

<i {{bind-attr class=":fa view.isSet:fa-check"}}></i> Toggle

答案 1 :(得分:0)

另一种可能的解决方案,不是针对OP的问题,而是针对具有类似标题的问题。

使用bind-attr绑定属性更改和元素类时,在bind-attr帮助程序中包含静态类映射而不是在单独的静态类属性中也很重要。

这并不总是有效:

<div class="round" {{bind-attr class="highlighted:hl"}}>Inner text</div>

正确的方法是:

<div {{bind-attr class=":round highlighted:hl"}}>Inner text</div>

答案 2 :(得分:0)

如果您使用的是上面的ember 1.11

然后使用以下标记

参考:

http://www.hutchinson.io/bind-attr-is-dead/