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

を使用して、にEmber.CollectionView依存するクラスを指定できます。APIドキュメントのセクションHTMLクラス属性を参照してください。contentclassNameBindings

ここで例を参照してください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 に答える