范围变量以角度更新但更改未反映给用户

Coo*_*oop 5 javascript scope angularjs

我有一些角度变量设置如下:

$scope.pane = [];
$scope.pane.count = 0;
$scope.pane.max = 5;
Run Code Online (Sandbox Code Playgroud)

然后我在HTML中显示变量,如下所示:

{{pane.count}}
Run Code Online (Sandbox Code Playgroud)

这很好,0并按预期显示.

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

例如

setTimeout(function(){
  $scope.pane.count = 1;
},1000);
Run Code Online (Sandbox Code Playgroud)

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

hal*_*ilb 15

为了让角度知道变化,你必须使用角度包装器来超时.

试试这个:

$timeout(function() {
  $scope.pane.count = 1;
}, 1000);
Run Code Online (Sandbox Code Playgroud)

通常,当你有一个更改值的角度世界之外的结构(例如jQuery插件)时,你必须调用$ scope.$ apply()让angular知道它们.

$scope.$apply();
Run Code Online (Sandbox Code Playgroud)