当我销毁自己的示波器时,我的程序中不断出现此错误.我跟踪到了这个while while循环中的角度:
if (!(next = (current.$$childHead || (current !== target && current.$$nextSibling)))) {
while(current !== target && !(next = current.$$nextSibling)) {
current = current.$parent;
}
}
Run Code Online (Sandbox Code Playgroud)
我还设法在一个jsFiddle中复制它:http://jsfiddle.net/kEyqz/1/
它很容易设置,在一个元素上我点击一个点击事件然后$广播点击它然后是$ apply.
在一个单独的指令(带有子范围)中,我会监听该事件,如果我看到它,我会破坏子范围.这样做会产生错误:
Uncaught TypeError: Cannot read property '$$nextSibling' of null
Run Code Online (Sandbox Code Playgroud)
这只是我在代码中尝试完成的一个小例子.
控制台记录在current = current之前.$ parent导致范围没有$ parent(设置为null).
我可以添加这些行:
if(!current){
break;
}
Run Code Online (Sandbox Code Playgroud)
在当前=当前.$ parent之后,但如果我切换角度版本,我必须保持它(不理想)
g00*_*0fy 22
这是你在寻找什么http://jsfiddle.net/jw99Lj7t/?
你被$destroy"荷兰国际集团的$scopedurgin digest周期-这是造成错误.
我不相信这是一个,bug因为这是digest循环的实现方式($scopes如果某些内容发生了变化,它会循环检查列表,并且我们无法从该列表中删除范围,因为它已经"已在使用中").
解决这个问题,可能会带来很多复杂性,因为digest必须非常快,最好只为你正在做的事情找到一种不同的方式.
| 归档时间: |
|
| 查看次数: |
15329 次 |
| 最近记录: |