Sto lavorando su un widget complesso con un albero di oggetti "preferenze" con 50-100 oggetti e 3-5 proprietà in ogni oggetto. Ogni proprietà è controllata da Angular e controlla come vengono visualizzati alcuni aspetti dei dati.
L'utente può modificare direttamente ciascuna preferenza tramite gli input nel widget e voglio salvare l'albero delle preferenze quando viene modificato.
Il modo angolare per farlo è $watch(preferences, <save function>, true)
, ma la documentazione avvisa:
This therefore means that watching complex objects will have adverse memory and performance implications.
L'alternativa è aggiungere gestori di eventi a ciascun input che altera l'oggetto preferenza, che è abbastanza incline agli errori.
Se le preferenze sono cambiate raramente, la penalizzazione delle prestazioni della sorveglianza profonda sarebbe abbastanza significativa da giustificare l'implementazione dell'alternativa?