5

Stiamo aggiornando la nostra applicazione ad Angular 1.3.0. In tal modo, abbiamo riscontrato alcuni problemi, molti dei quali sembrano riassumersi nel comportamento di ngTransclude all'interno di ngRepeat.AngularJS: ngTransclude e accede all'ambito di ngRepeat

Abbiamo una direttiva che ripete un gruppo di elementi, con un contenitore intorno a loro, ma non possiede i figli di quel contenitore. Per esempio, ecco un esempio semplificato:

<div ng-controller="myController"> 
    There are {{items.length}} items. 
    <div my-directive items="items"> 
     This item's name is {{item.name}} 
    </div> 
</div> 

Internamente, la direttiva contiene <li ng-repeat="item in items" ng-transclude></li>, tra le altre cose.

Prima dell'aggiornamento, funzionava correttamente. Gli elementi ripetuti, esclusi sono in un ambito che eredita dall'ambito creato da ngRepeat. A partire dall'aggiornamento, gli elementi sono in un ambito che eredita dal controller e, per quanto posso dire, non c'è modo di accedere all'ambito creato da ngRepeat.

Ecco due esempi JS Bin:

Come può Raggiungo il vecchio comportamento o qualche parvenza di esso in Angular 1.3.0? Se questo è il comportamento previsto di ngTransclude, come posso ripetere un gruppo di nodi figlio senza sapere quali sono?

risposta