javascript - 范围变量以 Angular 更新,但更改未反射(reflect)给用户

标签 javascript angularjs scope

我有一些 Angular 变量设置如下:

$scope.pane = [];
$scope.pane.count = 0;
$scope.pane.max = 5;

然后我像这样在 HTML 中显示变量:

{{pane.count}}

这工作正常并按预期显示 0

现在,如果我在任何时候更新变量,更新都会发生(我可以使用 console.log 看到)但 HTML 中的打印版本不会更新。

例如

setTimeout(function(){
  $scope.pane.count = 1;
},1000);

我正在使用 Angular v1.3。我做错了什么?

最佳答案

为了让angular知道变化,你必须使用angular wrapper超时。

试试这个:

$timeout(function() {
  $scope.pane.count = 1;
}, 1000);

通常,当你有一个外部结构(例如 jQuery 插件)改变值时,你必须调用 $scope.$apply() 让 Angular 知道它们。

$scope.$apply();

关于javascript - 范围变量以 Angular 更新,但更改未反射(reflect)给用户,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26866394/

相关文章:

javascript - 回调: function vs. function.bind

javascript - 如何在fiddler中修改json数据。

html - 图片在源中,但第一次在浏览器中不显示

python - 来自外部作用域的函数局部名称绑定(bind)

javascript - 在 $.getJSON 函数期间设置的变量只能在函数内访问

javascript - AngularJS:调用 save() 后取消覆盖值 $resource 对象;

JavaScript 重构

javascript - 为什么自定义过滤器不以 Angular 运行?

angularjs - Protractor - 启动 webdriver-manager 时出错,seleniumProcess.pid : undefined

c - 为什么我的程序仅根据我向 Clang 提供源文件操作数的顺序而表现不同?