html 是:
<body ng-app='myModule' ng-controller='myController'>
<div class="container">
<br>
<input class='form-control' type='number' min='0' ng-model='num'>
<h1>{{result}}</h1>
</div>
</body>
脚本文件:
angular.module('myModule',[]).controller('myController',function($scope){
$scope.num=5;
$scope.result=$scope.num*2;
});
结果
第一次只会产生10,然后对于输入
的任何变化它都会保持不变
我认为由于num
属性的变化,预计结果
会随着输入
的变化而变化。
我知道如果我分配一个如下的函数就会起作用:
$scope.result=function(){
return $scope.num*2;
}
和
<h1>{{result()}}</h1>
但是为什么它没有功能就不起作用?
最佳答案
因为当您在 Controller 中执行 $scope.result=$scope.num*2;
时,它只会被触发一次。如果您希望它在每个摘要周期(每当有变化时)被触发,您需要使用像您一样的函数,或者执行
<h1>{{num * 2}}</h1>
关于javascript - 为什么在 Angular 中,当我们不分配函数时,作用域属性的变化不会动态地反射(reflect)回 View ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36086567/