ngModel 的动态值
Dynamic value for ngModel
我能否以某种方式将函数作为 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] : ''
}
};
您不能将函数传递给 [(ngModel)]
,但您可以拆分绑定并在绑定中进行检查,例如
<input
[ngModel]="entity ? entity[propertyName] : null"
(ngModelChange)="entity && propertyName ? entity[propertyname] = $event: null"
不建议在绑定中使用函数。你还能做的是,
[(ngModel)]="someValue" //<<===changed
export class StringEditor {
@Input() public propertyName: string;
@Input() public entity: any;
ngOnInit(){ //<<<===added
this.someValue=this.entity ? this.entity[this.propertyName] : ''
}
};
我能否以某种方式将函数作为 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] : ''
}
};
您不能将函数传递给 [(ngModel)]
,但您可以拆分绑定并在绑定中进行检查,例如
<input
[ngModel]="entity ? entity[propertyName] : null"
(ngModelChange)="entity && propertyName ? entity[propertyname] = $event: null"
不建议在绑定中使用函数。你还能做的是,
[(ngModel)]="someValue" //<<===changed
export class StringEditor {
@Input() public propertyName: string;
@Input() public entity: any;
ngOnInit(){ //<<<===added
this.someValue=this.entity ? this.entity[this.propertyName] : ''
}
};