Angularjs angulars js变量值未更新
在下面的代码中,我有一个名为Angularjs angulars js变量值未更新,angularjs,Angularjs,在下面的代码中,我有一个名为$scope.name的变量。默认情况下,它的值为“Hello 1”。5秒钟后,我设置了setTimeout函数,该函数将$scope.name的值更新为“Hello 2” 该变量显示调试模式中的更改。但是新值不会更新为{{name}。换句话说,它只是在页面上显示旧值“Hello 1”,而不是“Hello 2”,这是必需的 提前谢谢你的帮助 var quizApp = angular.module("quizApp",[]); quizApp.controller("
$scope.name
的变量。默认情况下,它的值为“Hello 1”。5秒钟后,我设置了setTimeout
函数,该函数将$scope.name
的值更新为“Hello 2”
该变量显示调试模式中的更改。但是新值不会更新为{{name}。换句话说,它只是在页面上显示旧值“Hello 1”,而不是“Hello 2”,这是必需的
提前谢谢你的帮助
var quizApp = angular.module("quizApp",[]);
quizApp.controller("quizCtrl",function($scope){
$scope.name = "Hello 1";
function pAHL(){
$scope.name ="hello 2";
}
setTimeout(pAHL, 5000)
})
将setTimeout(pAHL,5000)
更改为$timeout(pAHL,5000)
并将$timeout
注入quizCtrl
var quizApp = angular.module("quizApp",[]);
quizApp.controller("quizCtrl",function($scope, $timeout){
$scope.name = "Hello 1";
function pAHL(){
$scope.name ="hello 2";
}
$timeout(pAHL, 5000)
})
或者第二个选项是使用$scope.$apply()
将setTimeout(pAHL,5000)
更改为$timeout(pAHL,5000)
并将$timeout
注入quizCtrl
var quizApp = angular.module("quizApp",[]);
quizApp.controller("quizCtrl",function($scope, $timeout){
$scope.name = "Hello 1";
function pAHL(){
$scope.name ="hello 2";
}
$timeout(pAHL, 5000)
})
或者第二个选项是使用$scope.$apply()
将setTimeout(pAHL,5000)
更改为$timeout(pAHL,5000)
并将$timeout
注入quizCtrl
var quizApp = angular.module("quizApp",[]);
quizApp.controller("quizCtrl",function($scope, $timeout){
$scope.name = "Hello 1";
function pAHL(){
$scope.name ="hello 2";
}
$timeout(pAHL, 5000)
})
或者第二个选项是使用$scope.$apply()
将setTimeout(pAHL,5000)
更改为$timeout(pAHL,5000)
并将$timeout
注入quizCtrl
var quizApp = angular.module("quizApp",[]);
quizApp.controller("quizCtrl",function($scope, $timeout){
$scope.name = "Hello 1";
function pAHL(){
$scope.name ="hello 2";
}
$timeout(pAHL, 5000)
})
或者第二个选项是使用$scope.$apply()
您不需要使用
$timeout
function pAHL(){
$scope.name ="hello 2";
$scope.$apply();
}
编辑
避免摘要错误的更优雅的解决方案是使用$timeout:
function pAHL(){
$timeout(function () {
$scope.name ="hello 2";
});
}
我们应该做到这一点 您不需要使用
$timeout
function pAHL(){
$scope.name ="hello 2";
$scope.$apply();
}
编辑
避免摘要错误的更优雅的解决方案是使用$timeout:
function pAHL(){
$timeout(function () {
$scope.name ="hello 2";
});
}
我们应该做到这一点 您不需要使用
$timeout
function pAHL(){
$scope.name ="hello 2";
$scope.$apply();
}
编辑
避免摘要错误的更优雅的解决方案是使用$timeout:
function pAHL(){
$timeout(function () {
$scope.name ="hello 2";
});
}
我们应该做到这一点 您不需要使用
$timeout
function pAHL(){
$scope.name ="hello 2";
$scope.$apply();
}
编辑
避免摘要错误的更优雅的解决方案是使用$timeout:
function pAHL(){
$timeout(function () {
$scope.name ="hello 2";
});
}
我们应该做到这一点 如果现在从angular内调用
pAHL
,它将产生摘要错误。我认为,$scope.$apply
应该在发生非角度事件的地方使用,这样您就可以对角度和非角度事件重用相同的函数code@doodeec是的,你说的很有道理。但我的解决方案是基于某些假设的,这些假设在这种情况下成立。如果现在从angular内部调用pAHL
,它将产生摘要错误。我认为,$scope.$apply
应该在发生非角度事件的地方使用,这样您就可以对角度和非角度事件重用相同的函数code@doodeec是的,你说的很有道理。但我的解决方案是基于某些假设的,这些假设在这种情况下成立。如果现在从angular内部调用pAHL
,它将产生摘要错误。我认为,$scope.$apply
应该在发生非角度事件的地方使用,这样您就可以对角度和非角度事件重用相同的函数code@doodeec是的,你说的很有道理。但我的解决方案是基于某些假设的,这些假设在这种情况下成立。如果现在从angular内部调用pAHL
,它将产生摘要错误。我认为,$scope.$apply
应该在发生非角度事件的地方使用,这样您就可以对角度和非角度事件重用相同的函数code@doodeec是的,你说的很有道理。但我的解决方案是基于某些假设的,这些假设在这种情况下成立。