ParentValueWatch
è quando un direttiva controlli nel suo campo di applicazione genitore per vedere se tutti i valori sono cambiati e, quindi, hanno bisogno di essere se stesso cambiato.
consideri la semplice direttiva,
{
restrict:"AE",
scope:{
foo:'='
}
}
Ora diciamo che nel campo di applicazione genitore, foo
è un oggetto.
$parent.$scope.foo = {
bar:"zim"
}
Ogni ciclo $digest
, il $ ambito bambino avrà bisogno di controllare il valore foo
del campo di applicazione principale e ciascuna delle sue proprietà.
Se foo
era un oggetto molto grande e profondamente annidato, ciò richiederebbe molto tempo, quindi perché ci vuole così tanto tempo.
All'interno del codice HTML, questo potrebbe apparire come questo:
<div parent-directive>
<div foo-directive foo=bar></div></div>
Un lavoro rapido giro per questo è di "congelare-secco" i valori utilizzando ng-init.
<div parent-directive>
<div foo-directive ng-init='zug={bar:$parent.foo.bar}' foo=zug></div></div>
Ora il valore associato a un nuovo oggetto. Perdi facilmente vincolante, ma ottieni prestazioni.
È sempre un compromesso.
fonte
2015-02-11 21:38:20
Questa è una funzione che controlla le modifiche nello scope principale rispetto all'ambito isolato di una direttiva che utilizza 'scope: {param:" = "}'. Ecco la [fonte] (https://github.com/angular/angular.js/blob/v1.2.24/src/ng/compile.js#L1487). Assicurarsi che i valori associati non siano associati a funzioni di lunga durata –