我不知道怎么问这个问题。当我写一个自定义指令时,这个问题总是令我困惑。为了更好地理解这个问题,我举了一个例子:
<input type="text" ng-model="name" />
在键入文本框时,每次更改时,处理函数都会执行。这个处理程序调用{{1}},其中ctrl是ctrl.$setViewValue(value)
而ngModelController
是实数值(我在文本框中输入).thus实际视图值传播到$ viewValue。直到这里所有概念都被清除。但我不知道$ viewValue如何传播到$ modelValue和真实模型值,反之亦然。请为我推荐一些教程,或者请在这里分享你的知识:)
感谢!!!
答案 0 :(得分:3)
顾名思义,$modelValue
是ngModel
指令绑定的值 - 即模型。例如,下面的name
:
<input ng-model="name">
$viewValue
是DOM中显示的值 - 即视图。
每个输入控件都有其自身含义。例如,对于<input>
元素,$viewValue
为:
element.val()
但是对于自定义输入控件,它可以是任何东西,无论你定义它。
ngModel
为require: "ngModel"
转换和验证值的指令提供了钩子。此外,ngModelOptions
允许在可能的延迟
model --> $formatters --> $validators --> view
view --> (debounce delay) --> $parsers --> $validators --> model