Il existe trois méthodes de liaison de données dans angulairejs1.X, qui sont utilisées pour la synchronisation des données, exposent. Avant angularjs 1.3
, il n'y avait que deux manières de angularjs
: two-way-binding
et one-way-bindng
, puis un mécanisme de liaison appelé one-time-binding
a été introduit.
Actuellement, il existe les trois méthodes de liaison de données suivantes dans angularjs
:
liaison bidirectionnelle
une -direction-reliure
reliure unique
angularjs
dans est d'associer Two-way-binding
et Model
. Les modifications de données de chaque côté mettront à jour les données de l'autre côté. View
modèle de données.
<input type="text" id="text" ng-model="name"/>
, nous pouvons facilement associer la valeur de la zone de saisie (ng-model
) à view
(name
). Sous l'influence du flux de données bidirectionnel, que nous modifions la valeur de la zone de saisie ou que nous modifiions Model
, l'autre côté sera mis à jour avec de nouvelles données à temps. name
est une directive intégrée de ng-model
pour implémenter une liaison bidirectionnelle. angularjs
Dans différents cycles de vie, il existe différents processus logiques. ng-model
la commande et la commande ng-model
seront fusionnées et traitées dans l'enregistrement de la balise input
input
événement (événement DOM) ; keydown
enregistre un interpolation
pour s'abonner à l'événement $watch
(événement angulaire js). change
keydown
capture l'événement input
et appelle keydown
pour demander l'action de mise à jour. $apply
Mettre à jour la valeur à angularjs
Model
$digest
détecte que $watch
se produit, informe Model
et demande une mise à jour change
. interpolation
DOM
angularjs
est unidirectionnel, c'est-à-dire qu'il circulera uniquement des flux Two-way-binding
vers one-way-binding
, mais pas de model
vers view
. Par conséquent, view
est utilisé pour afficher des données, pas pour obtenir des entrées. model
one-way-binding
Dans
a deux syntaxes : angularjs
et one-way-binding
. ng-bind
{{expression}}
<span ng-bind="name"> </span> <span>{{name}}</span>
. one-way-binding
two-way-binding
pour vous abonner à l'événement interpolation
(angularjs Event) . $watch
change
. Le angularjs
de $digest
détecte les modifications de données, informe expression
et demande une mise à jour $watch
. interpolation
DOM
angularjs
implémente un mécanisme appelé 1.3
. En substance, son mécanisme n’est pas très différent des deux autres méthodes, mais il se comporte différemment lors de la mise à jour des données. angularjs
one-time-binding
pour écouter les changements de données, mais il annulera la surveillance lorsqu'il détectera des données 对于上面的代码,假设 那么,假设 在我看来, 而 本篇关于angularjs的文章到这也就结束了(想看更多就到PHP中文网angularjs参考手册中学习),有问题的可以在下方留言提问。one-time-binding
non définies$watch
pour la première fois. <span>{{::name}}</span>
name
从 undefined
-> angularjs
-> angular
,最终渲染的结果是 angularjs
,而不是 angular
。 这就是 one-time-binding
的特殊之处,当 name
从 undefined
变化为 angularjs
之后,被认定为 name
的状态已经是 stable
,因此将取消 $watch
, 即不再监听数据变化。name
从 ''
-> angularjs
-> angular
, 则渲染结果是 ''
,即空字符串(第一次的值)。因为 one-time-binding
在计算 stable
时候使用的 严格相等,即 newVal === undefined
, 如果是,则继续保留 $watch
等待下一次的比较;否则,状态变更为 stable
,取消 $watch
, 数据转化为最终态。结束
angularjs
核心在于 angularjs context
和 $digest
。angularjs context
保证 angularjs
可以捕获到各种事件,用户输入、鼠标事件、键盘事件、甚至 $settimeout
和 $http
等异步行为的状态流转。$digest
则保证 angularjs
可以确认是否要更新数据。
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!