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;
});
result
首次只会产生 10 ,然后input
由于result
属性发生了变化,我认为由于input
更改,预计会更改num
。
我知道如果我分配一个像:
这样的函数,它会起作用$scope.result=function(){
return $scope.num*2;
}
和
<h1>{{result()}}</h1>
但为什么没有功能它不起作用?
答案 0 :(得分:3)
因为当您在控制器中执行$scope.result=$scope.num*2;
时,它只会被触发一次。如果你想让它在每个摘要周期被解雇(只要有变化),你需要像你一样使用一个函数,或者
<h1>{{num * 2}}</h1>
答案 1 :(得分:0)
@inorganik回答得很好。
我将补充一点,如果您希望在$scope.num
更改其值时绝对改变控制器中的$ scope.result值(或执行其他任务),则可以执行以下操作:
$scope.$watch('num', function (newValues) {
console.log("you change the value");
$scope.result = newValues*2
});