7

我正在构建一个角度元素并将一些输入参数传递给它。我可以很好地传递一些字符串输入参数(ikrId 和环境工作得很好),但努力通过一个角度元素将布尔值传递给 showTitle 输入属性(将 showTitle 属性从父角度组件传递给组件工作得很好)。

这是组件片段:

export class MyComponent implements OnInit, OnDestroy {

  @Input() ikrId: string;
  @Input('environment') environment: IkrEnvironment = 'PROD';
  @Input('showTitle') showTitle = true;

这是我在普通的旧 html中使用它的方式:

<my-element environment="DEV" ikr-id="889fb69f-71a5-4881-8528-0b43a07599f0" show-title="false"></my-element>

但是显示标题并没有传递到我的组件中,它总是正确的。

我在这里想念什么?

谢谢!

4

2 回答 2

8

您可以将showTitle属性定义为 getter/setter,并将字符串值转换为 setter 中的布尔值:

private _showTitle = true;

@Input('showTitle') 
get showTitle(): boolean {
  return this._showTitle;
}
set showTitle(value: boolean) {
  this._showTitle = "" + value !== "false";
}
于 2018-09-26T22:25:45.450 回答
2

在模板中传递输入的语法是[<input_name>]="<value>";你应该使用

<my-element [environment]="DEV" [ikrId]="889fb69f-71a5-4881-8528-0b43a07599f0" [showTitle]="false"></my-element>
于 2018-09-26T23:31:29.353 回答