根据this host attribute post,我创建了this Plunker。
在阅读github问题后,我的理解是我们应该能够使用[attr.someDirective]
有条件地将指令属性应用于元素。
它似乎确实添加/删除了指令属性。但是,Plunker演示了 - 当使用attr
时 - 即使将指令arribute添加到元素中,该指令也永远不会被应用。
我在这里遗漏了什么,或者这不是attr
主机属性的工作方式吗?
答案 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">
我已经在你提供的插件中测试了上述内容,但它确实有效。
希望这会对你有所帮助。