我有一些我希望在特定条件下可见的元素。
在 AngularJS 我会写
<div ng-show="myVar">stuff</div>
我怎样才能在 Angular 2+ 中做到这一点?
该hidden属性可用于
hidden
[hidden]="!myVar"
也可以看看
问题
hidden但是有一些问题,因为它可能与display属性的 CSS 冲突。
display
看看some在 Plunker 示例 中如何不被隐藏,因为它有一个样式
some
:host {display: block;}
放。(这可能在其他浏览器中表现不同 - 我用 Chrome 50 测试过)
解决方法
您可以通过添加来修复它
[hidden] { display: none !important;}
中的全局样式index.html。
index.html
另一个陷阱
hidden="false" hidden="{{false}}" hidden="{{isHidden}}" // isHidden = false;
是一样的
hidden="true"
并且不会显示元素。
hidden="false"将分配"false"被认为是真实的字符串。 只有值false或删除属性才会真正使元素可见。
hidden="false"
"false"
false
Using{{}}还将表达式转换为字符串,并且不会按预期工作。
{{}}
只有绑定 with[]才能按预期工作,因为 thisfalse被分配为false而不是"false".
[]
*ngIf 对比[hidden]
*ngIf
[hidden]
*ngIf``[hidden]在修改属性时有效地从 DOM 中删除其内容,display并且仅指示浏览器不显示内容,但 DOM 仍然包含它。
*ngIf``[hidden]