Ciągle pojawia się ten błąd w moim programie, gdy niszczę własne obszary. Śledziłem go do tej pętli while wewnątrz kanciasty:
if (!(next = (current.$$childHead || (current !== target && current.$$nextSibling)))) {
while(current !== target && !(next = current.$$nextSibling)) {
current = current.$parent;
}
}
udało mi także replikować go w jsFiddle: http://jsfiddle.net/kEyqz/1/
Jest to dość łatwy do skonfigurowania, na elemencie I drut kliknięcie zdarzenie, a następnie $ broadcast, że zostało kliknięte, a następnie $ apply.
W osobnej dyrektywie (z zakresem podrzędnym) słucham tego wydarzenia, a jeśli je zobaczę, niszczę zakres podrzędny. Powoduje to wystąpienie błędu:
Uncaught TypeError: Cannot read property '$$nextSibling' of null
To tylko mały przykład tego, co próbuję osiągnąć w moim kodzie.
Rejestrowanie konsoli tuż przed bieżącym = bieżącym. $ Parent powoduje, że zakres nie ma wartości $ parent (jest ustawiony na wartość null).
mogę dodać linie:
if(!current){
break;
}
Po bieżącego = bieżący $ rodzica, ale chciałbym mieć ją utrzymać, jeśli mogę przełączyć kątowe wersje (nie idealne)
Wydaje się być znanym błędem: https://github.com/angular/angular.js/issues/1627 –
Ten błąd został oznaczony jako naprawiony 9 miesięcy temu i to pytanie dotyczy problemu, który wciąż ma miejsce w bieżącym Angular 1.0 .8. – metamatt
Czy widzisz ten problem, niszcząc swoje własne zakresy, które sam stworzyłeś? Przykład w twoim jsFiddle niszczy zakres stworzony przez Angular dla twojej dyrektywy. Jeśli zmienię to, aby utworzyć, a następnie zniszczyć inny zakres, nie widzę tego problemu. http://jsfiddle.net/kEyqz/2/ – metamatt