2014-09-23 123 views
1
setTimeout(function(){ 
Ember.$("#right-bar").addClass("col-lg-12"); 
Ember.$("#right-bar").removeClass("col-lg-2"); 
this.set('isExpanded',true);}, 250); 
//this.set('isExpanded',true); 

我試圖在250ms延遲後更新isExpanded值,但是當我將註釋行代碼放入setTimeout功能塊(無論是分組還是單獨)時,它似乎沒有更新該值。SetTimeout在Ember控制器中不工作?

有什麼想法?

回答

1

你超出了範圍,你可能應該Ember.run.later。另外使用bind-attr將使您的生活更輕鬆,而不是手動更改CSS。

var self = this; 
Em.run.later(function(){ 
    Ember.$("#right-bar").addClass("col-lg-12"); 
    Ember.$("#right-bar").removeClass("col-lg-2"); 
    self.set('isExpanded',true); 
}, 250); 

Em.run.later(this, function(){ 
    Ember.$("#right-bar").addClass("col-lg-12"); 
    Ember.$("#right-bar").removeClass("col-lg-2"); 
    this.set('isExpanded',true); 
}, 250);