host和@HostBinding导致不同的行为

时间:2018-06-20 07:42:34

标签: angular

我需要能够以角度运行一些“伪验证”。这意味着我们的客户想要显示为警告的“验证”,但在角度上仍然有效。

为此,我使用了angular的形式验证(因为这似乎是正确的方法)。

我创建了一条指令,用于更新其主机的CSS类,类似于angular itself does

花了很多时间尝试各种事情之后(总是与@HostBinding一起使用),我注意到使用@HostBinding时永远不会添加该类,但是当使用指令的host时会成功工作

请参阅堆栈闪电-> https://stackblitz.com/edit/angular-keky2p?file=src%2Fapp%2Fapp.component.ts

目标是渲染橙色作为输入的背景。 如果您使用host,则有效;如果您使用@HostBinding,则无效。

函数asWarning仅使提供的任何验证器始终返回NULL(有效)

它们应该等效,但是似乎存在一些差异。 我做错什么了吗?还是不一样?

1 个答案:

答案 0 :(得分:1)

无需引入字段。
您可以将@HostBinding(...)添加到get displayWarning() {...