我有这个组件:
export class TranslatedInputComponent implements OnInit {
@Input() dto:DTO;
@Input() multi:boolean;
}
"multi“必须是不需要参数的属性。它的存在应该表示"true“,如果需要多行输入,则使用如下所示:
<translated-input [dto]="newSymptom.title" multi></translated-input>
现在,我必须绑定一个值:
<translated-input [dto]="newSymptom.title" [multi]="true"></translated-input>
让一个属性像一个属性指令一样工作的最干净的方法是什么?
发布于 2018-01-24 09:19:41
Material2编写了以下方法:
/** Coerces a data-bound value (typically a string) to a boolean. */
export function coerceBooleanProperty(value: any): boolean {
return value != null && `${value}` !== 'false';
}
将其用作:
private _editMode: boolean;
@Input()
get editMode() { return this._editMode; }
set editMode(value: any) { this._editMode = coerceBooleanProperty(value); }
html:
editMode == true
<app-document editMode></app-document>
editMode == false
<app-document></app-document>
如果你使用Material2,你可以简单的导入它
import {coerceBooleanProperty} from '@angular/cdk/coercion';
https://stackoverflow.com/questions/48407308
复制相似问题