Điều này có vẻ ngớ ngẩn, nhưng trong ngày và tuổi tác, người ta có thể mong đợi JS nâng cao một sự kiện nếu nội dung của một mảng đã thay đổi.Có cách nào để nhận lại cuộc gọi khi giá trị mục mảng đã thay đổi không?
Một số câu hỏi đã được hỏi về việc được thông báo khi một thay đổi biến thay đổi (xác định getter hoặc setter). Và có vẻ là a way to do that (ít nhất là đối với hầu hết các trình duyệt kể cả IE6 +)
Vấn đề của tôi là tôi đang cố gắng để có được thông báo nếu một mục bên trong một sự thay đổi mảng:
var ar = ["one", "two", "three"];
// setting the whole array will call the custom setter method
// (assuming you defined it)
ar = ["one", "three", "five"];
// however, this will only call the getter method and won't call the setter
// without defining custom setters for every item in the array.
ar[1] = "two";
Rõ ràng, tôi cố gắng tránh sử dụng trình mã hóa để sử dụng các hàm .getVale() và .setValue() kiểu cũ của trường java để truy cập/sửa đổi dữ liệu.
Backbone.js có thể kích hoạt các sự kiện khi mô hình bộ sưu tập thay đổi. Không hoàn toàn giống nhau, nhưng bạn có thể thấy cách họ làm điều đó. – asawyer
Bạn có thể có mảng như một biến riêng của một đối tượng, thì cách duy nhất để thay đổi biến là sử dụng một phương thức trên đối tượng đó, có thể kích hoạt sự kiện ... –
Tôi nghĩ bạn nên đọc về [mẫu có thể quan sát] (http://jsclass.jcoglan.com/observable.html) – MilkyWayJoe