我在Angular中创建了一个标签输入字段作为自己的组件,但是遇到了一个问题。组件中使用的输入字段是错误地绑定它的值。
每当我输入输入字段时,都会使用输入字段的值调用ngModel
- setter。这是为什么?输入字段假定绑定到filter属性(也是这样),而不是ngModel属性。
模板:
<div class="si-tags-input">
...
<input [(ngModel)]="filter"/>
</div>
逻辑:
export class SITagsInputComponent {
filter = "";
selectedTags = [];
@Input() get ngModel(){
return this.selectedTags;
}
@Output() ngModelChange = new EventEmitter();
set ngModel(val){
console.log("val", val);
this.selectedTags = val;
this.ngModelChange.emit(this.selectedTags);
}
...
}
我使用这样的组件:
<si-tags-input [(ngModel)]="target_locations" [available-tags]="locations" ngDefaultControl></si-tags-input>
答案 0 :(得分:-1)
尝试使用
<input [ngModel]="filter"/>