Tôi thấy một số hành vi rất kỳ quặc trong ứng dụng AngularJS của mình.
Khi một chương trình phát sóng $ duy nhất được thực hiện, bộ nhận (chỉ) được kích hoạt hai lần.
Hiệu ứng trên toàn bộ ứng dụng giống như khi người nhận chỉ bị sa thải sau khi. (nghĩa là chỉ một mặt hàng được thêm vào giỏ).
Nếu bạn kích hoạt phát sóng $ hai lần (tức là nhấp hai lần vào nút phát sóng $), bạn nhận được bốn lần thực hiện người nhận nhưng số lượng hai mục được thêm chính xác vào giỏ.
Có một số tính toán lại tính toán giống như bảng tính đang diễn ra ở đây không? Các hàm phạm vi $ có cần phải không ảnh hưởng đến các biến javascript 'đơn giản' không?
Vấn đề của tôi là tôi đã thêm alert
và nó đang được hiển thị hai lần.
tôi đã thực hiện một số công việc hơn trong gỡ lỗi này:
tôi đã thêm một bộ đếm mà đếm số lần phát sóng đã được nhận.
Nếu phạm vi (không có đô la) là toàn cầu, tôi nhận được kết quả gấp đôi. Nếu phạm vi của nó là cục bộ với hàm Ctlr, tôi nhận được kết quả không tăng gấp đôi.
Tôi có thể tạo bằng cách nào đó hai trường hợp bộ điều khiển của mình không?
Tôi có thể thấy từ firebug rằng $ http ajax yêu cầu được thực hiện từ bộ điều khiển chỉ xảy ra một lần, vì vậy tôi rất bối rối.
Nếu bạn chưa thử nó, hãy kiểm tra phần mở rộng AngularJS Batarang Chrome để khắc phục sự cố (https://github.com/angular/angularjs-batarang) trong trường hợp có phạm vi lồng nhau gây nhầm lẫn. – Gloopy