Tôi tiếp tục gặp lỗi này trong chương trình khi tôi tiêu diệt phạm vi của riêng mình. Tôi theo dõi nó xuống để lặp trong khi điều này trong góc:
if (!(next = (current.$$childHead || (current !== target && current.$$nextSibling)))) {
while(current !== target && !(next = current.$$nextSibling)) {
current = current.$parent;
}
}
Tôi cũng đã quản lý để tái tạo nó trong một jsFiddle: http://jsfiddle.net/kEyqz/1/
Đó là khá dễ dàng để thiết lập, trên một yếu tố tôi dây lên một nhấp chuột sự kiện và sau đó $ phát sóng rằng nó đã được nhấp theo sau là một $ áp dụng.
Trong một chỉ thị riêng biệt (với phạm vi con) tôi nghe trong sự kiện đó, và nếu tôi nhìn thấy nó, tôi phá hủy phạm vi con. Làm như vậy tạo ra lỗi:
Uncaught TypeError: Cannot read property '$$nextSibling' of null
Đây chỉ là một ví dụ nhỏ về những gì tôi đang cố gắng hoàn thành trong mã của mình.
Điều khiển ghi nhật ký ngay trước current = current. $ Parent kết quả trong phạm vi không có $ parent (được đặt thành null).
tôi có thể thêm các dòng:
if(!current){
break;
}
Sau khi dòng điện = hiện tại $ cha mẹ, nhưng tôi sẽ phải duy trì nó nếu tôi chuyển sang phiên bản góc (không lý tưởng)
Dường như là một lỗi đã biết: https://github.com/angular/angular.js/issues/1627 –
Lỗi đó được đánh dấu cố định cách đây 9 tháng và câu hỏi này là về một vấn đề vẫn xảy ra với Angular 1.0 hiện tại .số 8. – metamatt
Bạn có thấy vấn đề này phá hủy phạm vi của chính bạn mà bạn đã tạo ra không? Ví dụ trong jsFiddle của bạn là phá hủy một phạm vi mà Angular tạo ra cho chỉ thị của bạn. Nếu tôi thay đổi nó để tạo ra và sau đó phá hủy một phạm vi khác nhau, tôi không thấy vấn đề này. http://jsfiddle.net/kEyqz/2/ – metamatt