angularjs - 关于AngularJS中模型更新的问题
问题描述
我正在遵循一个示例,其中:-
<input type='text' ng-model='name'>
<p> Hello {{callingName()}} </p>
<p> Hello {{helloWorld()}} </p> //I added this later, not a part of the example.
在 .js 中
$scope.name = '';
$scope.callingName = function(){
return $filter('lowercase')($scope.name);
}
一旦我开始通过输入框更改模型属性名称,我就会看到 callName 不断(发生2路绑定)被调用。
我尝试添加自己的功能。
$scope.helloWorld = function(){
var x = $scope.name;
return "Hello World" + x;
}
现在当$scope.name再次被更改时,不应该helloWorld()
一次又一次地调用吗?但它没有?我错过了什么?
解决方案
helloWorld
没有在 HTML 模板中使用,因此当其他值发生变化时不需要调用它。
AngularJS 不知道您正在使用$scope.name
:它正在调用模板中使用的所有方法。
如果您需要在范围值更改时调用特定函数,您可以通过$scope.$watch
在控制器中使用来实现。
你似乎正在学习 AngularJS,这在 2021 年令人惊讶!可以维护旧项目,但不要将其用于任何新项目!