我在左侧菜单的ToDo 应用程序中使用jPanelMenu 。我创建了一个指令来将 jPanelMenu 应用于适当的元素。
一切都按预期工作,除了在使用 jPanelMenu 重新分配的元素内有一个嵌套的 ng-repeat 和一个嵌套的 ng-click。
<jpmenu>
<ul class="unstyled">
<li ng-repeat="category in categories">
<a href="#" ng-click="setFilterCategory(category)">{{ category }}</a>
</li>
</ul>
</jpmenu>
ng-click 事件未在创建的 jpanel 菜单中触发。
笔记:
- jPanelMenu 复制 jpmenu 元素并将其样式应用于它,而不是使用原始的 dom 元素
- 原始 DOM 元素仍然存在,它们是“display:none;”
- 重新创建的 jpanel 菜单元素中缺少类 ng-scope
- 如果我取消隐藏并单击它,ng-click 元素会在原始 DOM 元素上正确触发,但重新创建的元素根本不会触发。
我已经在指令中添加了一个超时来延迟 jpanel 菜单重新创建(等待 angular 先完成它的其他指令),但这并没有帮助
这是一个 jsfiddle 示例,说明正在发生的事情(由于跨站点安全,此 FIDDLE 不能在 Chrome 中运行):http: //jsfiddle.net/47PXj/
如果您单击 jsfiddle 中未隐藏的原始菜单项,您将看到文本更新,但如果您单击左侧菜单中的菜单项,它们将不起作用。