jPanelMenu正在中断AngularJS ng单击

jPanelMenu正在中断AngularJS ng单击,angularjs,Angularjs,我在左边的菜单中使用了a。我创建了一个指令,将jPanelMenu应用于适当的元素 除了在使用jPanelMenu重新分配的元素内部有一个嵌套的ng repeat和一个嵌套的ng click之外,一切都正常工作 <jpmenu> <ul class="unstyled"> <li ng-repeat="category in categories"> <a href="#" ng-click="setFi

我在左边的菜单中使用了a。我创建了一个指令,将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事件未在created jpanel菜单中触发

注:

  • jPanelMenu压缩jpmenu元素并将其样式应用于该元素,而不使用原始dom元素
  • 原始DOM元素仍然存在,它们是“display:none
  • 重新创建的jpanel菜单元素中缺少类ng作用域
  • 如果我取消隐藏并单击原始DOM元素,则ng click元素会正确地在其上激发,但重新创建的元素根本不会激发
我在指令中添加了一个超时来延迟jpanel菜单的重新创建(等待angular先完成它的其他指令),但这没有帮助

下面是一个JSFIDLE示例,它确切地说明了正在发生的事情(由于跨站点的安全性,此FIDLE不在CHROME中运行):


如果您单击JSFIDLE中未隐藏的原始菜单项,您将看到文本更新,但如果您单击左侧菜单中的菜单项,它们将不起作用。

您忘记了引导应用程序。试试这个:

<body ng-app="myApp">

它位于应用程序中的html标记上,我只是忘记将它复制到JSFIDLE,这不是罪魁祸首。即使是在JSFIDLE中,它仍然是坏的。