0

我在 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>
4

1 回答 1

-1

尝试使用

<input [ngModel]="filter"/>
于 2017-03-23T19:22:27.850 回答