我有一个angular2组件,当我在select元素中选择另一个选项时,我发现ngModelChange事件被触发了两次。
我查看了该组件模板的生成代码,发现有2个值访问器。
_View_SelectionPropertyComponent0.prototype._handle_change_7_1 = function($event) {
var self = this;
self.markPathToRootAsCheckOnce();
self.debug(7,3,8);
var pd_0 = (self._SelectControlValueAccessor_7_4.onChange($event.target.value) !== false); // First call
self.debug(7,3,8);
var pd_1 = (self._SelectControlValueAccessor_7_11.onChange($event.target.value) !== false); // Second call
return ((true && pd_0) && pd_1);
};
这是我的组件的模板:
<div class="form-group row">
<label class="col-xs-4 form-control-label">{{property.label}}</label>
<div class="col-xs-8">
<select class="form-control" [ngModel]="visual.appearance.get(property.name)" (change)="changeAppearance($event.target.value)" required>
<option *ngFor="let p of property.options" [value]="p">{{p}}</option>
</select>
</div>
</div>
这是设计,因为我在开发模式下运行应用程序?