【发布时间】:2017-06-18 04:49:01
【问题描述】:
我在看NgModel的源码。我了解其中的大部分内容,除了它如何设置输入的初始value。
NgModel extends NgControl
..
NgControl extends NgControlDirective
..
NgControlDirective 有这个代码:
get value(): any { return this.control ? this.control.value : null; }
因此,如果我们设置this.control.value,它会自动设置为value 的input。好的。
但this.control.setValue 仅在NgModel 更新时完成。
它如何知道初始设置值。
我猜它与
有关this.valueAccessor = selectValueAccessor(this, valueAccessors);
【问题讨论】:
-
But this.control.setValue is done only on update in NgModel.第一次调用ngOnChanges会通知第一次更新。 -
我也观察到,看起来是合法的。SimpleChanges 甚至有一个布尔值来告诉它的第一次更新。但不完全确定它是否正确
-
那是正确的,你能发布一个答案吗?