html - 如何显示和隐藏由 Angular 2 中的动态按钮触发的动态 div

标签 html css angular

我使用点击事件和一些简单的 javascript 完成了这项工作,但我确信有更好的方法。

我正在使用 ngFor 生成一些动态行和相应的动态按钮。

它们看起来像这样:

<div *ngFor="let section of data.order?.sections" id="{{section.class}}Detail" class="{{section.name | lowercase | removeAmpersand | removeSpaces }}">Random Text Here</div>

然后在页面的其他地方有一个也是使用 ngFor 生成的 anchor 标记列表:

<a (click)="showDetails($event)" id="{{section.name | lowercase | removeAmpersand | removeSpaces }}"><span class="icomoon icomoon-eye"></span> Detail/a>

我的问题是,显示和隐藏 div 的首选方式是什么?每个 div 都以 display: none 的 css 属性开始,我希望只是切换它。相反,我只是使用点击事件来运行一个获取 div id 的函数,然后我有一些看起来像这样的纯 javascript:

myDiv.style.display = myDiv.style.display === '' ? 'block' : '';

我应该怎么做才是首选方法?

最佳答案

您可以有条件地向您的元素添加 css 类。 有点像

<div class="standardclass" [class.additionalclass]="showFlag"></div>

其中 additionalclass 是另一个 css 类,只有当表达式 showFlag 为真时才会添加。它可以是任何 js 表达式,而不仅仅是一个标志。

您还可以使用 *ngIf 有条件地从 dom 中完全添加或删除元素。

搜索“Angular 2 模板语法”

关于html - 如何显示和隐藏由 Angular 2 中的动态按钮触发的动态 div,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38387037/

相关文章:

javascript - 在 Jquery Mobile 中动态创建和添加页面

css - 导航栏 jQuery 移动版 : no right positioning

html - Flash 消息没有 Bootstrap 类

forms - Angular 4有条件地删除所需的验证器

html 和 css - 在不使用表格的情况下对齐文章的行和列

javascript - 从 HTML 表中删除行

javascript - 如何使用水平滚动在容器内设置父级绝对位置的 li 元素定位

javascript - 如何使用自定义滚动实现快速滚动

javascript - 当使用 rxjs 6 以 Angular 6 发出新请求时如何取消正在进行的 HTTP 请求

Angular 订阅 API 返回的数据