Tôi khá mới đối với lập trình Javascript và tôi chỉ chạm vào AngularJS. Để đánh giá nó, tôi quyết định viết một ứng dụng ghi chú đơn giản. Mô hình thực sự đơn giản, một danh sách các ghi chú trong đó mỗi ghi chú có nhãn, văn bản và danh sách các thẻ. Tuy nhiên, tôi gặp phải vấn đề khi truyền dữ liệu giữa các phạm vi cô lập của các chỉ thị lồng nhau.Thứ tự gọi hàm liên kết trong các lệnh angularjs lồng nhau và lặp đi lặp lại
Tôi có ba chỉ thị, ghi chú, ghi chú và trình gắn thẻ (xác định các phần tử mới có cùng tên). Mỗi người trong số họ sử dụng một phạm vi bị cô lập.
Chỉ thị ghi chú sử dụng ng-repeat để "hiển thị" từng ghi chú của nó với phần tử ghi chú.
Chỉ thị ghi chú sử dụng phần tử trình gắn thẻ để "hiển thị" danh sách thẻ.
Chỉ thị ghi chú xác định phạm vi: {getNote: "&", ...} để chuyển thể hiện ghi chú từ danh sách ghi chú tới bộ điều khiển/chỉ thị ghi chú. Hàm getNote (index) được gọi trong hàm liên kết của chỉ thị ghi chú. Điều này hoạt động tốt!
Chỉ thị trình gắn thẻ xác định phạm vi: {getTags: "&", ...} để chuyển danh sách các thẻ cho một ghi chú cụ thể cho bộ điều khiển/chỉ thị trình gắn thẻ. Hàm getTags được gọi trong hàm liên kết của chỉ thị trình gắn thẻ. Điều này không hoạt động!
Như tôi đã hiểu, vấn đề là chức năng liên kết của các chỉ thị được gọi theo thứ tự không nhất quán. Gỡ rối các ứng dụng cho thấy rằng các chức năng liên kết được gọi theo thứ tự sau:
chức năngliên kết trong các ghi chú chỉ thị (thêm chức năng getNote đến phạm vi ghi chú)
chức năng liên kết trong Chỉ thị tagger của các lưu ý đầu tiên (gọi getTags trong phạm vi cha mẹ lưu ý) chức năng
chức năng liên kết trong chỉ thị nốt nhạc đầu tiên (thêm getTags đến phạm vi) (gọi getNote trong phạm vi ghi chú mẹ)
chức năng liên kết trong Chỉ thị tagger của các lưu ý thứ hai (gọi getTags trong phạm vi cha mẹ lưu ý) chức năng
chức năng liên kết trong Chỉ thị lưu ý thứ hai (thêm getTags để phạm vi) (gọi getNote trong các phụ huynh lưu ý phạm vi)
này sẽ không làm việc vì trong # 2 phạm vi của các lưu ý đầu tiên có chưa một chức năng getTags.
Ví dụ đơn giản có thể được tìm thấy trong Plunker.
Do đó, câu hỏi của tôi tóm tắt: Điều gì xác định thứ tự mà các hàm liên kết được gọi trong chỉ thị lồng nhau.
(Tôi đã giải quyết được sự cố khi sử dụng $ watch trên getTags trong chỉ thị trình gắn thẻ ...)
liên quan
[Hướng dẫn thực hành về PreLink, PostLink và phương pháp điều khiển của chỉ thị góc] (http://www.undefinednull.com/2014/07/07/practical-guide-to-prelink-postlink-and-controller-methods Chỉ là một bài viết khá toàn diện về cách sử dụng pre-link/post-link trên các chỉ thị lồng nhau –