2017-11-10 106 views
-1

我试图有条件地显示一个元素。此代码是我申请的元素应该工作:Angular |有条件显示元素

[style.display]="chatIsToggled ? 'display: block' : 'display: none'" 

的问题是,角度并不适用,因为“不安全型的价值”

WARNING: sanitizing unsafe style value display: none (see http://g.co/ng/security#xss). 

这将是一个aquivalent方式的风格实现我想要做的事情?

+3

该属性被命名为'style.display'。所以你不需要在值中重复显示。 '[style.display] =“chatIsToggled?'block':'none'”'。但为什么不使用* ngIf? –

回答

1

不要重复display,你只需要传递值本身。

[style.display]="chatIsToggled ? 'block' : 'none'" 

您也可以只使用

*ngIf="chatIsToggled" 

但确实有语义稍有不同,因为它甚至不会渲染元素,如果条件不满足。例如,这会影响其生命周期方法被调用的时间点。

+0

哎呀,你是对的。现在工作! –

+0

是的,就像你说我没有尝试使用ngIf,因为每当用户切换聊天窗口时,这将导致新的电话到我的服务器 –

+0

如果这导致后端调用你应该可能改变你的代码的设计,因为绝对可以避免。 :-)如果解决了您的问题,也请将答案标记为已接受。 –