AngularJS和DOM元素注入

AngularJS and DOM Elements injections

本文关键字:注入 元素 DOM AngularJS      更新时间:2023-09-26

请原谅我的标题,我不知道如何确切地描述它。

我是AngularJS的新手,我想问你关于如何创建一些东西的建议。

我有一个列表,我正在绘制与ngRepeat。单击每个列表项时,将打开一个折叠菜单。该菜单对于列表中的所有元素都是相同的。目前,我的ngRepeat将该菜单绘制到每个列表项,并仅在单击相应列表项时显示该菜单。所以如果我的列表有50个项目,我就要画50次菜单!这是我真正需要的49倍。

如果我要用jQuery做这件事,我只需要创建菜单并改变它在dom上的位置。我该如何用Angular的方式做到这一点呢?

列表外观的示例图像,灰色项是菜单及其操作。所有项看起来都一样,并调用相同的函数,但具有不同的参数:https://i.stack.imgur.com/rvk5L.jpg

我想在这些情况下,ng-if将是一个更好的选择,因为它将根据条件创建dom,而不是像ng-show那样显示/隐藏已经创建的元素。

从文档:

ngIf指令删除或重新创建了DOM树的一部分基于{表达式}。如果分配给ngIf的表达式求值为false值,则从DOM中删除该元素,否则为a元素的克隆被重新插入到DOM中。

下面是一个演示:http://plnkr.co/edit/Ro9LOB4f81LT32mGMyij?p=preview

单击菜单项时使用ngIf而不是ngShow,在这种情况下html将完全不呈现(当然当表达式为false时)