我正在经历the Angular 2 documentation并找到以下内容:
<div [hidden]="name.valid || name.pristine"
class="alert alert-danger">
[hidden]
部分没有解释。它是HTML属性,CSS还是Angular?为什么不使用ng-show
?
答案 0 :(得分:4)
ng-show
是angular1的历史。在没有hidden
属性(标准HTML,它可用starting from ie11)之前,所有标准属性都被一些类似的角度指令所覆盖,这些指令正在做这些事情。
这是一个问题,因为它迫使角度程序员学习很多指令。
Angular2的想法是删除所有不必要的指令,ng-show
就是其中之一。相反,angular2引入了一个绑定[hidden]
的属性,它执行相同的工作。
所以答案是:这是angular2属性绑定使用的标准HTML属性。
答案 1 :(得分:2)
hidden
是a global HTML attribute。方括号表示property binding。因此
[hidden]="name.valid || name.pristine"
表示“如果指定的控件有效或原始”,则将隐藏属性应用于此元素。然后,浏览器将使用display: none
呈现它。
您也可以使用*ngIf
完全从渲染的DOM中删除元素,例如, this answer进行比较。
目前还不清楚为什么你引用ng-show
,它是Angular 1的一部分而在2中不再存在。