通过属性presence on指令设置布尔输入属性

时间:2018-06-02 05:50:17

标签: angular

我可以向指令添加输入属性,并通过传递

等值来设置它
<my-component [customInput]='true'></my-component>

但是对于布尔输入属性,我无法弄清楚如何通过指令上的输入存在/不存在来设置值。即。

<my-component customInput></my-component>

当我尝试此操作时,customInput未设置,我希望将其设置为true。我有什么想法可以做到这一点?谢谢!

1 个答案:

答案 0 :(得分:0)

将输出属性存在但没有值(即<my-component customInput></my-component>)设置为空字符串""

所以只要我在输入中添加一个setter函数来强制赋值,<my-component customInput></my-component>就可以工作。像

这样的东西
@Input() customInput(value: string | boolean) {
  if (typeof value === 'string' {
    this._customInput = true;
  }
  else {
    this._customInput = value;
  }
}

我还会注意到使用没有像<my-component [customInput]></my-component>这样的值的输入绑定会导致customInput没有设置。