Javascript AngularJS-此演示应用程序中的函数触发器在哪里?

Javascript AngularJS-此演示应用程序中的函数触发器在哪里?,javascript,angularjs,Javascript,Angularjs,我刚开始学习AngularJS,想知道这个小演示应用程序是如何工作的: 以下是完整的代码: <html ng-app="myNoteApp"> <script src="http://ajax.googleapis.com/ajax/libs/angularjs/1.4.8/angular.min.js"></script> <body> <div ng-controller="myNoteCtrl"> <h2>My

我刚开始学习AngularJS,想知道这个小演示应用程序是如何工作的:

以下是完整的代码:

<html ng-app="myNoteApp">
<script src="http://ajax.googleapis.com/ajax/libs/angularjs/1.4.8/angular.min.js"></script>
<body>

<div ng-controller="myNoteCtrl">

<h2>My Note</h2>

<p><textarea ng-model="message" cols="40" rows="10"></textarea></p>

<p>
<button ng-click="save()">Save</button>
<button ng-click="clear()">Clear</button>
</p>

<p>Number of characters left: <span ng-bind="left()"></span></p>

</div>

<script src="myNoteApp.js"></script>
<script src="myNoteCtrl.js"></script>

</body>
</html>
控制器文件“myNoteCtrl.js”:

问题:函数left()是如何触发的

这里有一个“ng模型”数据绑定(双向数据绑定?):

更新textarea内容是否会触发函数“left()”

剩余字符数:

我不明白AngularJS在这里干什么。。。left()函数调用的对象或对象是什么

韩国,
Milan

每个$digest周期,angular都会更新DOM中的绑定。它将调用作用域上的
left()
函数来获取该值。这就是它的来源。

每个$digest周期,angular都会更新DOM中的绑定。它将调用作用域上的
left()
函数来获取该值。这就是它的来源。

在angular中有一个称为$digest cycle的循环


循环angular core的每一次迭代都会重新计算每个绑定,因此在您的示例中,您正在执行此操作
,因此每个摘要循环都会执行left()函数。

在angular中有一个称为$digest cycle的循环


循环角核的每一次迭代都会重新计算每个绑定,因此在您的情况下,您正在执行此操作
,这样每个摘要周期都会执行left()函数。

ng bind
告诉span将其值绑定到
left()
(或
$scope.left()
)的结果。因为它是绑定的,所以它将等待任何更改并相应地更新
span
。根据W3C不假思索的解释:

ng bind指令将控制器函数left()绑定到显示左侧字符的

发件人:

ngBind属性告诉Angular用给定表达式的值替换指定HTML元素的文本内容,并在该表达式的值更改时更新文本内容


ng bind
告诉span将其值绑定到
left()
(或
$scope.left()
)的结果。因为它是绑定的,所以它将等待任何更改并相应地更新
span
。根据W3C不假思索的解释:

ng bind指令将控制器函数left()绑定到显示左侧字符的

发件人:

ngBind属性告诉Angular用给定表达式的值替换指定HTML元素的文本内容,并在该表达式的值更改时更新文本内容

var app = angular.module("myNoteApp", []);
app.controller("myNoteCtrl", function($scope) {
    $scope.message = "";
    $scope.left  = function() {return 100 - $scope.message.length;};
    $scope.clear = function() {$scope.message = "";};
    $scope.save  = function() {alert("Note Saved");};
});
<p><textarea ng-model="message" cols="40" rows="10"></textarea></p>
<p>Number of characters left: <span ng-bind="left()"></span></p>