使用" attr"时未使用指令主机属性

时间:2017-01-26 16:50:10

标签: angular directive attr

根据this host attribute post,我创建了this Plunker

在阅读github问题后,我的理解是我们应该能够使用[attr.someDirective]有条件地将指令属性应用于元素。

它似乎确实添加/删除了指令属性。但是,Plunker演示了 - 当使用attr时 - 即使将指令arribute添加到元素中,该指令也永远不会被应用。

我在这里遗漏了什么,或者这不是attr主机属性的工作方式吗?

1 个答案:

答案 0 :(得分:1)

要使用 attr anyDirective anyDirective (没有任何值)应该包含在元素中(在html模板中)。见下文(以粗体显示):

选项-1 (设置为空白将呈现没有值的指令)

< input type =" text"命名="一个" phoneMask [attr.phoneMask] ="" [(ngModel)] =" input_one">

<input type="text" name="one" phoneMask [(ngModel)]="input_one">

选项-2 (设置为&#34; null&#34;不会呈现指令)

&lt; input type =&#34; text&#34;命名=&#34;一个&#34; phoneMask [attr.phoneMask] =&#34; null&#34; [(ngModel)] =&#34; input_one&#34;&GT;

<input type="text" name="one" [(ngModel)]="input_one">

选项-3 (设置为&#34; some_value&#34;不会使用&#34; some_value呈现指令)

&lt; input type =&#34; text&#34;命名=&#34;一个&#34; phoneMask [attr.phoneMask] =&#34; some_value&#34; [(ngModel)] =&#34; input_one&#34;&GT;

<input type="text" name="one" phoneMask="some_value" [(ngModel)]="input_one">

我已经在你提供的插件中测试了上述内容,但它确实有效。

希望这会对你有所帮助。