2010-05-31 24 views
5

Từ dojo documents trên dijit.registry, tôi thấy phương thức forEach chấp nhận tham số cuối cùng thisObject. Nhưng nó không theo cách đó đối tượng đó là gì. Nó là một widget dijit hay một đối tượng dojo?tải tất cả các tiện ích con bên trong một phần tử

Tôi muốn hủy tất cả các tiện ích bên trong một phần tử (sẽ được thay thế bằng AJAX) để chúng có thể được phân tích cú pháp một lần nữa mà không xung đột id.

dijit.registry.forEach(function(w) { 
    w.destroyRecursive(); 
}, dojo.byId("ajaxElement")); 

Nhưng điều này phá hủy ALL widget trên trang ...

+0

Kiểm tra câu hỏi về lưu lượng truy cập ngăn xếp này, câu hỏi đã được trả lời ở đó: http://stackoverflow.com/questions/2763983/dojo-and-unregistering-widgets – mtchuente

Trả lời

3

Các thisObject là đối tượng phạm vi để gọi chức năng thông qua tại như các tham số đầu tiên của forEach.

Một vài giải pháp mà bạn có thể sử dụng trong trường hợp này:

1) Sử dụng dijit.findWidgets để tìm tất cả các dijits trong một nút DOM và tiêu diệt từng cái một. dijit.findWidgets trả về mảng các tiện ích có mã định vị là tham số 2) dojo.parser.parse trả về một mảng tất cả các di chuyển mà nó tạo, lưu trữ mảng đó và hủy các di chuyển trước khi bạn gọi lại dijit.parser.parse.

3) Sử dụng dijit.registry.filter để lọc ra các dijits bạn muốn giữ.

Các vấn đề liên quan