Il problema si riferisce all'angolare scope
. Ogni applicazione angolare ha per impostazione predefinita un ambito di base. Può tuttavia avere più ambiti figlio.
Alcune direttive incorporate creano nuovi ambiti figlio. ng-repeat
è un esempio di questo. Ogni elemento all'interno di questa direttiva ha il proprio ambito. Quando questi ambiti vengono creati, vengono automaticamente aggiunti come figli dell'ambito principale.
Questo crea una struttura ad albero simile al DOM
rootScope
- childScope
- childScope
- childScope
Per vedere in azione, check out HTML del browser. Essa sarà simile a questa
<div>
<li ng-repeat="elem in someArray" class="ng-scope ng-binding">elem 1
<input type="checkbox" ng-model="checkState" />
</li>
<li ng-repeat="elem in someArray" class="ng-scope ng-binding">elem 1
<input type="checkbox" ng-model="checkState" />
</li>
</div>
Si noti che ogni elemento ng-repeat ha un ng-scope
e una classe ng-binding
.
La direttiva crea un'istanza di modello una volta per elemento da una raccolta. Ogni elemento del modello, in questo caso ogni elemento li
ha il proprio ambito.
La direttiva utilizza $watchCollection
per rilevare le modifiche nella raccolta. ng-repeat apporta le seguenti modifiche al DOM
- Quando si aggiunge una nuova istanza del modello viene aggiunto al DOM
- Quando un elemento viene rimosso, la sua istanza modello viene rimosso dal nuovo elemento DOM
- Quando gli elementi vengono riordinati, i loro modelli vengono riordinate dal DOM
Ecco la documentazione ufficiale per angolare
https://docs.angularjs.org/api/ng/directive/ngRepeat
https://docs.angularjs.org/guide/scope
fonte
2016-03-03 01:04:19
ng-repeat ha il suo campo di applicazione – watashiSHUN
Questo è qualcosa che si deve fare attenzione quando si inizia angularjs di apprendimento, la portata funziona allo stesso modo eredità in javascript, se si fa un assegnamento di variabile nello scope secondario, ombreggia il genitore, puoi leggere di più da [il github angolare] (https://github.com/angular/angular.js/wiki/Understanding-Scopes#JSproto) – watashiSHUN