在 AngularJs 中,值如何从真实视图值传播 --> $viewValue --> $modelValue --> 真实模型值,反之亦然?

In AngularJs, how value propagate from real view value --> $viewValue --> $modelValue --> real model value and vice versa?

我不知道怎么问这个问题。当我编写自定义指令时,这个问题总是让我感到困惑。为了更好地理解这个问题,我举个例子:

<input type="text" ng-model="name" />

在文本框中键入时,每次更改时,都会执行一个处理函数。此处理程序调用 ctrl.$setViewValue(value),其中 ctrl 是 ngModelControllervalue 是实际值(我已在文本框中键入)。因此实际视图值传播到 $viewValue。直到这里所有概念都是 cleared.but 我不知道 $viewValue 如何传播到 $modelValue 和真实模型值,反之亦然。请为此推荐一些教程,或者请在这里分享您的知识:)

谢谢!!!

顾名思义,$modelValuengModel 指令绑定到的值 - 即模型。例如下面的name

<input ng-model="name">

$viewValue 是 DOM 中显示的值 - 即视图。 每个输入控件都有自己的含义。例如,对于 <input> 元素,$viewValue 是:

element.val()

但对于自定义输入控件,它可以是任何内容,无论您如何定义它。

ngModelrequire: "ngModel" 转换和验证值的指令提供挂钩。此外,ngModelOptions 允许在可能的延迟

之后延迟将值提交给模型
model -->                      $formatters --> $validators --> view
view  --> (debounce delay) --> $parsers    --> $validators --> model