首页 > 解决方案 > 关于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()一次又一次地调用吗?但它没有?我错过了什么?

标签: angularjs

解决方案


helloWorld没有在 HTML 模板中使用,因此当其他值发生变化时不需要调用它。

AngularJS 不知道您正在使用$scope.name:它正在调用模板中使用的所有方法。

如果您需要在范围值更改时调用特定函数,您可以通过$scope.$watch在控制器中使用来实现。

你似乎正在学习 AngularJS,这在 2021 年令人惊讶!可以维护旧项目,但不要将其用于任何新项目!


推荐阅读