$$广播上的angularjs错误

时间:2013-04-11 17:56:28

标签: angularjs

我有一个角度脚本,它在$ rootScope上广播一个事件(使用$$广播)。 我正在使用的角度版本是1.1.4

在某些情况下,这会在角度代码中引发异常:

未捕获的TypeError:无法读取null的属性'$$ nextSibling'。

是否有人知道可能导致此错误的原因?不幸的是,发生此错误的代码很重要,但也许有人可能指出我正确的方向?

发生角度代码的地方是:

   // Insanity Warning: scope depth-first traversal
      // yes, this code is a bit crazy, but it works and we have tests to prove it!
      // this piece should be kept in sync with the traversal in $digest
      if (!(next = (current.$$childHead || (current !== target && current.$$nextSibling)))) {
        while(current !== target && !(next = current.$$nextSibling)) {

on while语句

更新:广播从外部组件上的单击事件内部执行 click事件是外部组件的配置对象的属性。

2 个答案:

答案 0 :(得分:12)

$timeout(function(){
    //do stuff
});
没有等待时间的

$timeout也可以。

答案 1 :(得分:-2)

问题在于使用或不使用$$适用范围。有时我需要在申请阶段的其他场合使用$$ apply ... Sp我最终实现了safeApply(在互联网上的某个地方找到)。不知道为什么这不是以角度实现的标准,因为它实现起来非常简单,并且简化了编码