【发布时间】:2018-06-24 07:18:00
【问题描述】:
我有两个 DIV - 一个始终可见,另一个在我单击按钮后显示(它是可切换的):
<div>
<div>
<small>ADDRESS</small>
<p [appQueryHighlight]="query">{{ address}}</p>
</div>
</div>
<div *ngIf="showDetails">
<div>
<small>NAME</small>
<p [appQueryHighlight]="query">{{ name}}</p>
</div>
</div>
我的自定义指令在第一个 DIV 上运行良好(它会更改段落内与“输入”中输入的查询匹配的字母颜色),但在第二个 DIV 上不起作用。
以下是查询为“addr”时“测试地址”的外观示例:
测试 address
其中粗体文本是例如红色文本。
但是当我有名字 John,并且查询是“Joh”时,它也应该用按钮显示一次,但它不是。
据我了解,单击并切换第二个 div 后,我需要重新运行指令。另外,可能我必须延迟执行此操作,因此有时间显示。我该怎么做?
【问题讨论】:
-
你做错了什么。我怀疑它应该工作
-
@ConnorsFan 我更正了 - “查询”
-
对不起,我被文档标题误导了,它来自角度 1。但实际上您可以使用
[hidden]="!showDetails" -
是的 - 已更正。我猜没有更多的错别字了。我认为@Kaddath 是对的。我应该使用 hidden 而不是 *ngIf。但我正在使用动画 - 不透明度和高度从第一个 div 滑动第二个 div。使用 [hidden] 时将不起作用。有什么建议吗?
-
如果 ngIf 不显示/隐藏元素,而是如果为 false,它根本不会将它们发布到 DOM。因此,该要素不存在且免于对其采取行动。我是不是误会了什么?如果您改用 ngShow/ngHide,这是否有效。
标签: javascript html angular directive