SetTimeout在Ember控制器中不起作用?

时间:2014-09-23 03:33:32

标签: javascript jquery ember.js

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功能块(无论是分组还是单独)时,它不会&# 39;似乎更新了价值。

有什么想法吗?

1 个答案:

答案 0 :(得分: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);