2012-06-24 31 views
0

相同的CSS類鑑於Ember.js刪除,並增加了bindAttr

<div {{bindAttr class="test"}}> 

當計算性能測試被更新,但它的價值保持不變,測試CSS類被刪除和添加。這會在類有CSS動畫時產生問題,因爲重新添加類會重新啓動動畫。如果它已經是元素的一部分,有沒有辦法刪除和添加類?

+0

你能提供的jsfiddle?你的計算屬性是如何定義的?你可以用這個作爲起點:http://jsfiddle.net/pangratz666/eTcDu/ – pangratz

回答

0

只要設置了值,不僅僅當值被更改時,Ember觀察者都會被觸發。解決你的問題的一個可能的方法是引入第二個屬性,該屬性僅在值實際發生變化時才設置。喜歡的東西:

<div {{bindAttr class="stableTest"}}> 

然後在像一個觀點:

onTestChanged: function() { 
    var test = this.get('test'); 
    var stableTest = this.get('stableTest'); 
    if (test !== stableTest) { 
     this.set('stableTest', test); 
    } 
}.observes('test')