1

我可以以某种方式将功能作为价值ngModel吗?我想稍后为我的输入设置值(所以我希望,当我更改entity值时,要更新的模型),这就是为什么我想先检查它是否存在,因此是函数。我有以下,但它不工作:

@Component({
    selector: 'string-editor',
    template: `
    <dl>
      <dt>{{propertyName}}</dt>
      <dd>
        <input
          type="text"  
          [(ngModel)]="getValue()" />
      </dd>
    </dl>`,
})
export class StringEditor {

    @Input()  public propertyName: string;
    @Input()  public entity: any;

    getValue() {
      return this.entity ? this.entity[this.propertyName] : ''
    }
};
4

2 回答 2

1

您不能将函数传递给,[(ngModel)]但您可以拆分绑定并在绑定中进行检查,例如

<input
  [ngModel]="entity ? entity[propertyName] : null"
  (ngModelChange)="entity && propertyName ? entity[propertyname] = $event: null"
于 2017-01-27T10:24:16.233 回答
-1

不建议在绑定中使用函数。你还能做的是,

[(ngModel)]="someValue"             //<<===changed



export class StringEditor {

    @Input()  public propertyName: string;
    @Input()  public entity: any;

    ngOnInit(){                     //<<<===added
       this.someValue=this.entity ? this.entity[this.propertyName] : ''
    }
};
于 2017-01-27T10:24:59.373 回答