范围变量不会在函数中保持值的变化

时间:2015-04-23 08:27:17

标签: javascript angularjs

我有一个控制器,可以初始化我的值:

$scope.showThing=true;

我用ng-click和

切换值
ng-click="showThing=!showThing"

哪个工作正常但是如果我尝试在控制器内部的一个函数中使用相同的值,它表现得非理性,至少可以说。 像在interval函数中警告值一样简单的事情只在第一次在更改值后迭代时获得正确的值,有时甚至不会。 由于它是如此微不足道的东西,我不想单独为这个创建一个工厂,所以我希望有人可以告诉我这里我做错了什么。

2 个答案:

答案 0 :(得分:0)

您的问题并不简单,您可以发布代码吗?这是悬挂问题。

var a = 10;
console.log("value of 'a' before hoisting: "+a);
(function(){ 
 console.log("value of 'a' after hoisting: "+a);
 var a; 
})(); 

Result:
value of 'a' before hoisting: 10
value of 'a' after hoisting: undefined

答案 1 :(得分:0)

这可能是因为间隔启动一次,然后只是一遍又一遍地返回相同的值。尝试与此类似的东西,包括getter样式函数:

$scope.showThing=true;

var getShowThing = function() {
  return $scope.showThing;
};

$scope.displayTr=function(){ 
  alert(getShowThing()); 
};

$interval(function() { 
  //get data from a factory .then(function(response) { 
    if (response.status === 200) { 
      $scope.info = response.data; 
    } else { 
      console.log('Error occured' + response.status); 
    } 
  }); 
  $scope.displayTr(); 
}, 5000);

希望这有帮助。