Questo può sembrare sciocco, ma in questo giorno ed età, uno dovrebbe essere in grado di aspettarsi che JS sollevi un evento se il contenuto di di un array è stato modificato.C'è un modo per ottenere una richiamata quando il valore di un elemento dell'array è cambiato?
Sono state poste alcune domande relative alla notifica quando una variabile cambia (definire getter o setter). E sembra che ci sia a way to do that (almeno per la maggior parte dei browser tra cui IE6 +)
Il mio problema è che io sto cercando di ricevere la notifica se un elemento all'interno di un array modifiche:
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";
Ovviamente, io sono cercando di evitare di forzare il coder ad utilizzare le funzioni .getVale() e .setValue() stile java della vecchia scuola per accedere/modificare i dati.
Backbone.js può attivare eventi quando i modelli di raccolta cambiano. Non proprio la stessa cosa, ma puoi vedere come lo fanno. – asawyer
Si potrebbe avere la matrice come variabile privata di un oggetto, quindi l'unico modo per cambiare la variabile è utilizzare un metodo su quell'oggetto, che può generare un evento ... –
Penso che dovresti leggere il [pattern osservabile] (http://jsclass.jcoglan.com/observable.html) – MilkyWayJoe