Angular JS watch 函数

时间:2020-02-23 14:29:31  来源:igfitidea点击:

Angular JS $scope函数是一些主要函数。

有Angular的JS watch 函数是什么?

AngularJS $watch函数用于 watch 范围对象。
$watch密切关注变量,当变量的值更改时,AngularJS $what会运行一个函数。
此函数有两个参数,一个是新值,另一个参数是旧值。

如何使用AngularJS watch 函数?

让我们举一个简单的示例,说明angular JS中的watch函数的函数。
因此,在我们的有AngularJS程序中,我们创建了两个文件,其中index.js负责前端,而app.js负责后端。
其中我们用表单制作一个简单的程序,该表单有一个输入字段。
当我们在输入字段中输入名称时,输出消息将向我们显示旧值和新值。

HTML代码

我们的index.html页面有一个名为ngWatchApp的Angular应用程序和一个名为ngController的控制器 watchController
然后,我们创建一个带有输入字段名称的表单,并在h1标签中打印该输入字段的值,并在<p>标签中打印消息。

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Angular watch example</title>
</head>
<body ng-app="ngWatchApp">
 
<div ng-controller="watchController">
 
    <form>
        <label>Enter you name</label>
        <input type="text" ng-model="name">
    </form>
    <h1>Hello {{name}}</h1>
    <p>{{message}}</p>
 
</div>
 
<!--angular js library-->
<script src="assets/js/angular.js"></script>
<script src="app.js"></script>
</body>
</html>

JavaScript代码

在app.js中,我们创建了一个名称为ngWatchApp的应用程序和一个名称为Controller的控制器 watchController
接下来,我们在范围内用名称,名称和消息定义两个变量,并在watch函数中传递两个参数,一个是更改时受影响的字段的名称,另一个是也具有两个参数的函数,新价值和旧价值。
最后,我们在message变量中添加两个值,并且message变量显示在 index.html页。

var app = angular.module('ngWatchApp', []);
app.controller('watchController', function($scope) {
//adding scope variable
$scope.name = "";
$scope.message = "";
//add watch with name field
$scope.$watch("name", function (newValue='', oldValue='') {
$scope.message = `new valus is ${newValue} and old value is ${oldValue}`;
});
});

每当我们观看一个函数时,该函数就会根据摘要多次调用。
每当执行代码时,AngularJS都会传入当前的$scope引用作为第一个参数。
这不仅意味着我们可以从函数体内引用适当的范围,还意味着我们可以 watch 任何需要$scope引用的函数。

这就是我们可以在应用程序中使用angular js watch()函数来 watch $scope变量更改的方式。
$watch还有其他一些函数,这些是$digest()函数在$scope对象中的所有 watch 之间进行迭代 $digest()遍历 watch ,为每个 watch 调用value函数。
$scope.$apply()函数将函数作为执行的参数,之后 $scope.$digest()在内部被调用。