Tôi có một biến sẽ được sử dụng bởi một hoặc nhiều Bộ điều khiển, được thay đổi bởi Dịch vụ. Trong trường hợp đó, tôi đã xây dựng một dịch vụ giữ biến này trong bộ nhớ và chia sẻ giữa các bộ điều khiển.Biến ràng buộc từ Dịch vụ/Nhà máy đến Bộ điều khiển
Vấn đề là: Mỗi khi biến đó thay đổi, các biến trong bộ điều khiển không được cập nhật theo thời gian thực.
Tôi tạo Fiddle này để trợ giúp. http://jsfiddle.net/ncyVK/
--- Lưu ý rằng {{countService}}
hoặc {{countFactory}}
không bao giờ được cập nhật khi tôi tăng giá trị đếm.
Làm cách nào để liên kết biến Service/Factory với $ scope.variable trong Controller? Tôi đang làm gì sai?
Vì vậy, về cơ bản, nhà máy chỉ là một thùng chứa (singleton) dùng chung cho dữ liệu và chức năng trên dữ liệu. Bạn có thể quản lý/đồng bộ hóa dữ liệu theo cách thủ công trong và ngoài phạm vi $? – sambomartin
@sambomartin đúng. Bài viết tuyệt vời [ở đây] (http://fdietz.github.io/recipes-with-angular-js/controllers/sharing-code-between-controllers-using-services.html) – user4815162342
Vì vậy, bằng cách chuyển hàm như testFactory.getCount và không gọi nó, và gọi nó trong giao diện người dùng bạn đã ràng buộc giá trị dịch vụ. Trong khi nếu bạn $ scope.countFactory = testFactory.getCount() bạn sẽ chỉ gọi hàm một lần khi được khởi tạo và không có gì bị ràng buộc? Vì vậy, không được cập nhật sau này nếu giá trị thay đổi? – mtpultz