是否可以将无值输入属性传递给组件?

时间:2017-02-02 17:37:31

标签: angular

可以将html元素传递给暗示值的无值属性,例如requiredinput元素。可以用角度分量做同样的事情吗?

一个例子:

<my-component required></my-component>

...

@Component({
  selector: 'my-component',
})
export class MyComponent implements OnInit {

  @Input() required;

  constructor() { }

  ngOnInit() {
    console.log(this.required); // true??
  }
}

2 个答案:

答案 0 :(得分:2)

Angular不提供直接支持,但有解决方法

  isRequired:boolean = false;
  @Input() set required(val) {
    this.isRequired = true; // only called when the attribute exists
  }

  constructor(@Attribute('required') required) {
    console.log('constructor': required == '');
  }

Plunker example

我没有测试动态添加/删除属性时的行为方式。

答案 1 :(得分:0)

无值属性作为空字符串输入。如果需要支持有价值和无值表单中的属性,请按如下方式定义setter:

[required]="..."

这也适用于属性绑定(${aspnet-request-host})。