1

我在左侧菜单的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 中未隐藏的原始菜单项,您将看到文本更新,但如果您单击左侧菜单中的菜单项,它们将不起作用。

4

1 回答 1

0

你忘了引导你的应用程序。尝试这个:

<body ng-app="myApp">
于 2013-06-14T18:43:08.993 回答