代码之家  ›  专栏  ›  技术社区  ›  Antediluvian

用ngModel实现我自己的组件

  •  1
  • Antediluvian  · 技术社区  · 6 年前

    我有下面的HTML,并希望有 myModel 无论何时同步 input my-component 变化。

    <input type="text" [(ngModel)]="myModel" />
    <my-component [(ngModel)]="myMdoel></my-component>
    

    有什么想法吗?

    <div *ngFor="let item of items">
        <input type="text" name="item{{item.name}}" [(ngModel)]="item.name" />
        <my-component [(model)]="item.name" [datasource]="source"></my-component>
    </div>
    

    我的组件

    <button type="button" *ngFor="let s of datasource" (click)="selectItem(s)">{{s}}</button>
    
    export class MyComponent ... {
        _model: any;
    
        @Input()
        get model(): any {
            return this._model;
        }
    
        @Input()
        set model(value: any) {
            this._model = vaue;
        }
    
        @Output() modelChange: EventEmitter<any> = new EventEmitter<any>();
    
        @Input() datasource: any[];
    
        ...
    
        selectItem(item: any): void {
            this._model = item;
            this.modelChange.emit(this._model);
        }
    }
    
    1 回复  |  直到 6 年前
        1
  •  0
  •   Sajeetharan    6 年前

    <my-component [myModelVar]="myMdoel></my-component>
    

    在你我的心里-组件

    @input myModelVar;
    

    在这里 myModelVar 当您更新父组件上的myModel时,将发生更改