1

如何在每次进行 ember 时根据 contentBinding 中的值添加、删除和更改 ember 元素的 css 类?

在 didInsertElement 中执行类似下面的操作,但是当基于控制器的内容值添加 css 类时,视图元素已附加到视图,因此 css 不会被应用。

在渲染视图元素时,还有其他方法可以执行此操作吗?

didInsertElement: function() {
      this._super();
    var personStr= this.get("content").person;
       if(personStr==1){
            this.$("img").addClass("add-person");
            this.$("img").removeClass("view-person");
            this.$("img").removeClass("edit-person");
        }

}

4

1 回答 1

1

您可以使用 aEmber.CollectionView并指定依赖于contentin的类classNameBindings。请参阅API 文档的HTML 类属性部分。

在此处查看示例http://jsfiddle.net/pangratz666/b4xGP/

Ember.CollectionView.create({
    content: [{name: 'Brunö'}, {name: 'Alfred'}, {name: 'Hansi'}],

    itemViewClass: Ember.View.extend({
        templateName: 'item',
        classNameBindings: 'beginsWithA'.w(),

        beginsWithA: function() {
            var name = this.getPath('content.name');
            if (!Ember.empty(name)) {
                return name.indexOf('A') === 0;
            }
        }.property('content.name')
    })
}).append();​
于 2012-05-25T19:28:42.870 回答