【问题标题】:Add, remove css classes while Ember view getting rendered在 Ember 视图渲染时添加、删除 css 类
【发布时间】:2012-05-25 17:45:15
【问题描述】:

如何在每个 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");
        }

}

【问题讨论】:

    标签: css view ember.js


    【解决方案1】:

    您可以使用Ember.CollectionView 并指定依赖于classNameBindings 中的content 的类。参见API documentationHTML 类属性部分。

    在此处查看示例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();​
    

    【讨论】:

      猜你喜欢
      • 2022-01-09
      • 2014-06-12
      • 2012-03-05
      • 2014-12-18
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-11-26
      • 2021-12-10
      相关资源
      最近更新 更多