输入的Angular ngModel绑定不正确

时间:2017-03-23 19:17:47

标签: angular angular4

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

1 个答案:

答案 0 :(得分:-1)

尝试使用

<input [ngModel]="filter"/>