【问题标题】:mmenu is not initializated under angularjsmmenu 未在 angularjs 下初始化
【发布时间】:2014-04-06 20:37:40
【问题描述】:

我正在开发一个带有左右抽屉的移动应用程序,使用 mmenu (http://mmenu.frebsite.nl/) 它工作正常,直到我决定动态填充右侧菜单的项目。我的应用程序基于 angularjs,并且正文中的所有 angularjs 指令都工作正常,除了 <nav id="menu-right">somehow 中的所有指令,菜单定义中的 angularjs 指令未执行。我不确定这是否与执行 javascript 的顺序有关。任何帮助将不胜感激。谢谢!!

更新(4 月 7 日)

jsfiddle中的一个例子http://jsfiddle.net/jmhostalet/wcK8L/

“我的控制器说”在正文中但不在 mmenu 中工作,在正文中打印“Hello”但在 mmenu 中不打印任何内容

【问题讨论】:

  • 我们可能需要查看一些代码,或者更好的是 Fiddle/Plunk

标签: angularjs mmenu


【解决方案1】:

您遇到的问题是:

  1. 首先声明中没有包含
  2. 您正在更改 DOM,而 Angular 对此一无所知,因此它没有机会编译大括号 {{myCtrlVar}}

似乎创建指令需要额外的工作,但从长远来看,您可以更多地重用代码。另外,如果您像我一样并且有不良的 JavaScript 习惯;最好使用框架来保持直截了当。

我在下面的 plunker 中的解决方案显示了执行您所要求的“一种方法”。将整个 MMenu 代码移植到 Angular 模块中以获得更多参数和控制会很有趣。

(从未听说过 MMenu,但似乎是一个很酷的项目——我会更多地研究它)。

Plunker

(对不起,我不擅长使用提琴手)

【讨论】:

  • 谢谢,它正在工作。无论如何,我发现扩展指令以使用来自 mmenu 的其他内部方法非常困难,因此我决定使用 angularjs 从头开始​​构建自己的抽屉。还是谢谢!!
【解决方案2】:

您的小提琴在#menu-right 上没有控制器初始化,但在他的兄弟元素上没有初始化,因此 {{myCtrlVar}} 表达式无法访问控制器范围对象。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2018-09-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-12-27
    相关资源
    最近更新 更多