2016-11-27 50 views
3

我正在經歷the Angular 2 documentation,發現如下:div中的[hidden]與使用ng-show之間的區別是什麼?

<div [hidden]="name.valid || name.pristine" 
class="alert alert-danger"> 

上有[hidden]部分沒有解釋。它是HTML屬性,CSS還是Angular?爲什麼不使用ng-show

+1

因爲ng2 show在angular2中不存在? – smnbbrv

+0

'[hidden] =「...」'只是單向綁定[HTML隱藏屬性](https://developer.mozilla.org/en/docs/Web/HTML/Global_attributes/hidden)。 – jonrsharpe

+0

仍然不回答[隱藏]的問題? –

回答

3

ng-show不再存在是angular1的歷史目前還不清楚。在沒有hidden屬性(標準HTML,它可用starting from ie11)之前,所有的標準屬性都被一些類似的角色指令所覆蓋,這些指令正在做這些事情。

這是一個問題,因爲它迫使有角度的程序員學習大量的指令。

Angular2的想法是刪除所有不必要的指令,而ng-show就是其中之一。相反,angular2引入了一個屬性綁定[hidden],它執行相同的工作。

所以答案是:這是angular2屬性綁定使用的標準HTML屬性。

2

hiddena global HTML attribute。方括號表示property binding。因此

[hidden]="name.valid || name.pristine" 

裝置「隱藏屬性應用到該元素如果指定的控制或者是有效或原始」。然後瀏覽器將呈現它,但是與display: none

您也可以使用*ngIf完全從渲染的DOM中移除元素,請參閱this answer作比較。

爲什麼你引用ng-show,這是折角1份和2

相關問題