2015-04-23 66 views
0

我有一个控制器,它初始化我的价值,例如:变量的范围不守值的函数改变

$scope.showThing=true; 

我切换与价值NG单击样

ng-click="showThing=!showThing" 

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

+1

可以请你出示你的控制器的代码吗? – Hinrich

+0

$ scope.showThing = true; \t \t $ scope.displayTr = function(){ \t \t \t alert($ scope.showThing); \t \t}; \t \t $间隔(函数(){ \t \t \t //取得从工厂 \t \t \t \t。然后(功能(响应){数据 \t \t \t \t \t如果(response.status === 200) { \t \t \t \t \t \t $ scope.info = response.data; \t \t \t其他{ \t \t \t \t \t \t console.log('Error occured'+ response.status); \t \t \t \t \t} \t \t \t \t}); \t \t \t $ scope.displayTr(); ),5000); –

+1

顺便说一句,最好用格式化的代码更新你的原始问题,而不是在评论中粘贴代码 – Hinrich

回答

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 
+0

我认为情况并非如此。我没有得到任何未定义的变量。 –

0

这可能是,因为间隔一次启动,然后只是一遍又一遍地返回相同的值。尝试类似的东西,与吸气式风格功能相关:

$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); 

希望这会有所帮助。