【发布时间】:2014-07-13 08:39:03
【问题描述】:
我的主要问题很简单:
我在控制器或指令中进行 DOM 操作时遇到错误,但是该功能运行良好。
Error: [$parse:isecdom] Referencing DOM nodes in Angular expressions is disallowed! Expression: open()
我想忽略这些错误,并确认这样做是安全的,从 功能 角度(不是设计角度)
为了简单起见,我希望能简单地回答这个问题,而不必质疑我是否需要这样做。
现在,如果有人确实想更详细地讨论,我有这个要点: https://gist.github.com/kosz/04f916a5725d85045be5(依赖项:angular、jquery、jquery ui 对话框) 使用我目前遇到这种行为的代码。
到目前为止,我已经尽了最大的努力来消除这个错误,并且根据我阅读的内容和文档,指令中似乎鼓励使用角度进行 dom 操作。
所以我已经使代码与指令一起工作,但是,它仍然抛出错误!?
如您所见,如果用户想要编辑,我正在使用 Jquery UI 并为每个列表项显示它。我没有直接操作 dom,但是,我需要一种方法来控制 jQuery ui 对话框的关闭/打开事件,这不会使 Angular 用错误填充我的控制台。
非常感谢您对此的任何见解。
请注意,我知道有角度的 ui 引导模式,在这种特殊情况下我不能使用它。
【问题讨论】:
-
这是针对 dom 操作的标准角度错误:错误:[$parse:isecdom] 不允许在 Angular 表达式中引用 DOM 节点!表达式: open() 。编辑问题以包含此信息
-
您是否尝试过在函数中(在表达式之外)调用您的 DOM 操作功能?根据documentation,该检查仅对 Angular 表达式中的对象索引和函数调用执行
-
您是否尝试过使用常规箭头
->而不是粗箭头=>绑定/创建scope.open?
标签: javascript jquery angularjs dom coffeescript