2017-11-10 47 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

如果這導致後端調用你應該可能改變你的代碼的設計,因爲絕對可以避免。 :-)如果解決了您的問題,也請將答案標記爲已接受。 –