我有一个角度脚本,它在$ 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事件是外部组件的配置对象的属性。
答案 0 :(得分:12)
$timeout(function(){
//do stuff
});
没有等待时间的 $timeout
也可以。
答案 1 :(得分:-2)
问题在于使用或不使用$$适用范围。有时我需要在申请阶段的其他场合使用$$ apply ... Sp我最终实现了safeApply(在互联网上的某个地方找到)。不知道为什么这不是以角度实现的标准,因为它实现起来非常简单,并且简化了编码