在我的代码(下面的代码段示例)中,我有一个使用ng-model
指令绑定到输入框的变量。然后,我有另一个变量,为了我的项目,它依赖于该绑定变量。
如果bar
发生变化,我如何保持{在下面的示例中为foo
更新?
我尝试使用$scope.$watch
函数调用(我展示了我在下面使用的语法),但是当用户在输入框中输入内容时,不会调用绑定函数。
HTML
...
<div ng-controller="exampleController as ctr">
...
<div><input type="number" ng-model="ctr.foo" /></div>
<div>{{ ctr.bar }}</div>
</div>
的Javascript
app.controller('ExampleController', function($scope){
var local = this;
this.foo = 5;
this.bar = 10;
this.updateBar = function(){
this.bar = this.foo * 2;
};
$scope.$watch('foo', function(){
local.updateBar();
});
});
注意:所有这些只是示例代码,以显示我的问题。
答案 0 :(得分:1)
如果您使用ng-change
,则无需观看$ watch? ;)
<div ng-controller="exampleController as ctr">
...
<div><input type="number" ng-model="ctr.foo" ng-change="ctr.updateBar()" /></div>
<div>{{ ctr.bar }}</div>
</div>
答案 1 :(得分:0)
尝试使用范围功能:
HTML
<div ng-controller="exampleController">
...
<div><input type="number" ng-model="foo" /></div>
<div>{{ bar() }}</div>
</div>
的Javascript
app.controller('ExampleController', function($scope){
$scope.foo = 5;
$scope.bar = function(){
return $scope.foo * 2;
};
});