Maison > Article > interface Web > Concernant l'introduction de la liaison de données dans Angularjs, voici une explication détaillée
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"/>Grâce à
, 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>, le mécanisme interne est partiellement le même que pour
. 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!