ngModelChange()
如何工作?
但是我不确定,如果我使用ngModelChange
事件,即使我不是providing model name to ngModelChange()
,它(ngModel
)如何工作。
<input #gb type="text" pInputText class="ui-widget ui-text" **ngModel**
(ngModelChange)="functionName($event)">
最佳答案
是的,ngModelChange()无需向ngModel提供模型名称即可工作。
发生这种情况的原因是(ngModelChange)是ngModel指令的@Output。
当在输入中插入一些值时,时间 glowEvent变为true ,默认情况下为false(因此不会在初始时间触发页面加载)。
您可以在 \ @angular \ forms \ esm5 \ forms.js中找到►第3850行
如果emitEvent
是true
,则此
更改将导致valueChanges
上的FormControl
事件被发出。这个默认
为true(因为它属于updateValueAndValidity
)。
如果emitViewToModelChange
是true
,则会触发ngModelChange事件以更新
模型。如果未指定emitViewToModelChange
,则这是默认行为。
如果emitModelToViewChange
是true
,则将通知 View 有关新值
通过onChange
事件。
现在的问题是,为什么在插入输入而不是ture
的$ event中获得相同的值,导致
function (value, options) {
var _this = this;
if (options === void 0) { options = {}; }
(/** @type {?} */ (this)).value = this._pendingValue = value;
if (this._onChange.length && options.emitModelToViewChange !== false) {
this._onChange.forEach(function (changeFn) { return changeFn(_this.value, options.emitViewToModelChange !== false); });
}
this.updateValueAndValidity(options);
};
同一文件行号3911到3919