我正在通过Angular 2文档,并找到了以下内容:
<div [hidden]="name.valid || name.pristine"
class="alert alert-danger">
[hidden]
部分没有任何解释。它是HTML属性,CSS还是Angular?为什么不使用ng-show
?
ng-show
是Angular1的历史记录。在没有hidden
属性(标准HTML,从IE11开始)之前,所有标准属性都涵盖了一些类似的Angular指令。
这是一个问题,因为它迫使角度程序员学习很多指令。
Angular2的想法是删除所有不必要的指令,而ng-show
就是其中之一。相反,Angular2引入了绑定 [hidden]
的属性。
所以答案是:这是Angular2属性绑定使用的标准HTML属性。
hidden
是全局html属性。方括号表示属性绑定。因此
[hidden]="name.valid || name.pristine"
表示"如果指定的控件是有效的或原始的,则将隐藏属性应用于此元素" 。然后,浏览器将渲染,但使用display: none
。
您可以使用*ngIf
完全从渲染的DOM中删除元素,例如此答案以进行比较。
目前尚不清楚为什么您引用ng-show
,它是Angular 1的一部分,不再存在于2中。