Quando Angularjs innesca un $ oneval, c'è un modo per dire immediatamente quali valori in questo ambito sono cambiati?

StackOverflow https://stackoverflow.com/questions/7354870

  •  28-10-2019
  •  | 
  •  

Domanda

Voglio sincronizzare automaticamente le modifiche al server. Attualmente sto rilevando cambiamenti in a scope.$onEval Gestitore mediante JSON che serializza lo stato dell'applicazione e confrontandolo con una copia precedentemente serializzata, utilizzando differenziali.

Mi chiedevo se Angularjs avesse qualcosa incorporato per renderlo più efficiente.

È stato utile?

Soluzione

Potresti usare più $ watches invece di un singolo $onEval (Si noti che $ watch può prendere una funzione come argomento anziché una stringa/espressione e nella versione> = 0.10.0 i valori osservati vengono confrontati usando angolare.object.equals). A parte questo, non conosco alcun meccanismo AngularJS che sarebbe utile per questo.

Altri suggerimenti

Sto lavorando a qualcosa di simile. Come ho suggerito @psyho che sto usando $ watch per catturare i cambiamenti.

scope.$watch("dataObject",function (newValue, oldValue) {
    //calculate changes
    //send the changes to the server
});

Quindi uso la logica da jQuery diff Per calcolare quali modifiche sono state apportate.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top