我有一個控制器,它初始化我的價值,例如:變量的範圍不守值的函數改變
$scope.showThing=true;
我切換與價值NG單擊樣
ng-click="showThing=!showThing"
這工作正常,但如果我嘗試在控制器內部的函數中使用相同的值,則表現爲非理性,至少可以說。 只要提醒間隔函數中的值,只需在第一次更改值後迭代即可獲得正確的值,有時甚至不會。 由於這是微不足道的東西,我不想爲此創建一個工廠,所以我希望有人能告訴我我在這裏做錯了什麼。
我有一個控制器,它初始化我的價值,例如:變量的範圍不守值的函數改變
$scope.showThing=true;
我切換與價值NG單擊樣
ng-click="showThing=!showThing"
這工作正常,但如果我嘗試在控制器內部的函數中使用相同的值,則表現爲非理性,至少可以說。 只要提醒間隔函數中的值,只需在第一次更改值後迭代即可獲得正確的值,有時甚至不會。 由於這是微不足道的東西,我不想爲此創建一個工廠,所以我希望有人能告訴我我在這裏做錯了什麼。
你的問題並不簡單,你可以發佈代碼。這是吊裝問題。
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
我認爲情況並非如此。我沒有得到任何未定義的變量。 –
這可能是,因爲間隔一次啓動,然後只是一遍又一遍地返回相同的值。嘗試類似的東西,與吸氣式風格功能相關:
$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);
希望這會有所幫助。
可以請你出示你的控制器的代碼嗎? – Hinrich
$ 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); –
順便說一句,最好用格式化的代碼更新你的原始問題,而不是在評論中粘貼代碼 – Hinrich