2012-05-25 35 views
1

如何添加,刪除和更改一個基於來自contentBinding的價值的一個花費元素的CSS類,而每個做燼?添加,刪除CSS類,而灰燼視圖獲取呈現

在didInsertElement中做了類似下面的事情,但是由於時間已經添加了基於來自controller的內容值的css類,view元素被附加到視圖,因此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"); 
     } 

}

回答

1

你可以使用一個Ember.CollectionView,並指定你的類依賴於classNameBindingscontent。請參見API documentation,部分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();​