2014-06-09 137 views
1

请原谅我的标题,我不知道如何描述它。AngularJS和DOM元素注入

我是AngularJS的新手,我想请教你如何创建一些东西。

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

如果我要用jQuery来做这件事,我只需创建菜单并在dom上更改其位置即可。我怎样才能做到这一点?

示例如何显示列表的图像,灰色项目是菜单及其操作。看起来是一样的所有项目,并调用相同的功能,但使用不同的参数: http://i.stack.imgur.com/rvk5L.jpg

+0

请发表您正在使用的代码。另外,我不确定jQuery实现与AngularJS重复的区别。它只是改变了DOM。 –

回答

0

使用ngIf而不是ngShow上的菜单项时,点击,在这种情况下,HTML根本就无法显示(当表达式为假,当然)

+0

谢谢!这是我正在寻找:)以前不熟悉这一点。 – Shai

+0

@你好,欢迎:) – karaxuna

1

我猜这些类型的案例ng-if将是一个更好的选择,因为这将根据条件创建dom,而不是像ng-show那样显示/隐藏已创建的元素。

从文档:

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

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