gpt4 book ai didi

javascript - Angularjs $scope 值未更新

转载 作者:行者123 更新时间:2023-11-29 19:27:23 25 4
gpt4 key购买 nike

好的,我有以下 HTML:

<timer countdown="30" interval="1000">
{{seconds}}
percent
</timer>
{{timerSeconds}}

为此,我有以下 Controller 代码:

$scope.timerRunning = true;
$scope.timerSeconds = 100;
$scope.$on('timer-tick',function(e, val) {
$scope.timerSeconds = (Math.floor(val.millis / 1000) / 30 * 100);
});

但是 View timerSeconds 没有更新。我通过调试验证了该事件,发现它正在执行函数并更改 timerSeconds 值。

最佳答案

在这一行之后:

$scope.timerSeconds = (Math.floor(val.millis / 1000) / 30 * 100);

添加

$scope.apply();

这样 AngularJS 检查模型是否有变化并重新渲染它们。

在许多情况下,AngularJS 无法检测到模型更改,尤其是在 Asynch 函数中,例如 $on()

阅读更多相关信息:When to use $scope.$apply()

如果不行,使用 AngularJS 的 $timeout 函数

$scope.$on('timer-tick',function(e, val) {
$timeout(function(){
$scope.timerSeconds = (Math.floor(val.millis / 1000) / 30 * 100);
})
});

关于javascript - Angularjs $scope 值未更新,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30015744/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com