Giả sử tôi có một ViewModel với 100 đạo cụ. Hiện tại tôi cần một trình xử lý sẽ được gọi nếu có bất kỳ thay đổi nào về đạo cụ. Tất nhiên tôi có thể viết 100.đăng ký cho mỗi tài sản, nhưng có vẻ như, rằng có một cách tốt hơn. Giống như trong C#, nơi bạn có thể liên kết với sự kiện PropertyChanged của mô hình, và sau đó chọn các thuộc tính quan tâm theo tên của chúng.knockoutjs: làm thế nào để có được thông báo cho tất cả các thuộc tính một lần
Trả lời
Câu trả lời chung là tạo ra một người phụ thuộcBảo hộ được đăng ký mọi thứ. Điều này có thể dễ dàng thực hiện bằng cách thực hiện một bên trong của một thuộc tính có thể phục vụ, vì nó sẽ đệ quy unwrap tất cả các quan sát. Bạn sẽ muốn thận trọng để không bao gồm chính mình trong cuộc gọi ko.toJS
hoặc bạn có thể tham gia vào vòng lặp vô hạn.
Nếu bạn đang tìm kiếm thứ gì đó có chức năng hơn một chút, hãy xem post này.
Tôi nghĩ bạn đang sử dụng KO 1.2.1. Nó không phải là dễ dàng như vậy trong phiên bản này. Tuy nhiên Knockout 1.3 đang đến. Hiện tại nó là phiên bản beta nhưng nó khá ổn định. Điều chỉnh đã được thực hiện trong Knockout 1.3. Tôi nghĩ rằng đây là những gì bạn cần.
Bạn có thể đọc thêm về 1.3 phiên bản ở đây: http://blog.stevensanderson.com/2011/08/31/knockout-1-3-0-beta-available/
Và kiểm tra mẫu trên mạng: http://jsfiddle.net/StevenSanderson/Rnmb2/1/
Có lẽ tôi có thể giúp bạn với thực hiện trong trường hợp bạn cần một số trợ giúp.
Tôi hy vọng đó chính xác là những gì bạn cần.
Tôi sử dụng phiên bản 1.3.0 beta, nhưng tôi không thấy vấn đề của mình tương quan như thế nào với điều chỉnh. –
- 1. Có cách nào để có được tất cả các thuộc tính của DOMElement không?
- 2. Làm thế nào để lập trình liệt kê tất cả các thuộc tính được xác định?
- 3. Làm thế nào để có được tất cả các thuộc tính của một phần tử html từ WebBrowser Component
- 4. thông số mạnh mẽ cho phép tất cả thuộc tính cho thuộc tính lồng nhau
- 5. Làm thế nào để lặp qua tất cả các thuộc tính của một lớp?
- 6. Làm thế nào để liệt kê tất cả các thuộc tính phụ thuộc của kiểm soát?
- 7. hộp thông báo có nút "Có cho tất cả" và "Không cho tất cả"
- 8. Một khai báo css cho tất cả các thuộc tính phông chữ css
- 9. làm thế nào để có được kích thước màn hình android lập trình, một lần và cho tất cả?
- 10. Làm thế nào để có được tất cả các thông số bài trong Symfony2?
- 11. Cách thông báo cho tất cả các thuộc tính của mô hình chế độ xem đã thay đổi
- 12. Cắt tất cả các thuộc tính chuỗi
- 13. Làm thế nào để tìm tất cả các lần xuất hiện của một biến trong Vim?
- 14. Làm thế nào để lặp qua tất cả các thuộc tính XElement và nhận giá trị
- 15. Thông báo bất động sảnThay đổi cho các thuộc tính được tính
- 16. Làm thế nào để có được danh sách các thuộc tính của một lớp học?
- 17. Ember.js: Quan sát tất cả các thuộc tính đối tượng
- 18. Làm thế nào để có được các thuộc tính theo thứ tự chúng được khai báo trong một lớp Python?
- 19. Đặt thuộc tính VerticalAlignment cho tất cả các điều khiển
- 20. Groovy Liệt kê tất cả các thuộc tính cho lớp
- 21. Làm thế nào tôi có thể đọc tất cả các thuộc tính từ một XML với VBA?
- 22. Làm thế nào để có được tất cả các bảng có FK đến một bảng khác?
- 23. Làm cách nào để có danh sách tất cả các ký tự Unicode có thuộc tính đã cho?
- 24. Xóa tất cả các thuộc tính
- 25. Làm thế nào để thông báo cho tất cả (cùng) đậu Singleton trong một cụm Glassfish 3.1?
- 26. Phản ánh trên tất cả các thuộc tính của giao diện, bao gồm cả các thuộc tính được kế thừa?
- 27. Làm thế nào để loại trừ thuộc tính nhất định từ Knockoutjs toJS()
- 28. Làm thế nào để có được tất cả các tập con của một mảng?
- 29. Nhận tất cả các thuộc tính đã đánh dấu một thuộc tính nhất định
- 30. Làm thế nào để serialize một mô hình với tất cả các thuộc tính xác nhận từ các thuộc tính cá nhân?
Cảm ơn, bài viết này có ý nghĩa tốt. Bạn có biết cách tôi có thể tìm thấy tài sản cụ thể nào đã kích hoạt thay đổi không? –
Thực hiện theo dõi thay đổi phức tạp hơn. Đây là một ví dụ về cách nó có thể hoạt động: http://jsfiddle.net/rniemeyer/5bxLr/. Chức năng "onPropertyChanged" có thể được tùy chỉnh hoặc ai đó có thể vượt qua trong đó. –