D'accord, donc je fais une liste récursive en AngularJS utilisant ng-inclure et ng répétition, quelque chose comme ceci:
<div id="wrapper">
<div id="text" ng-click="DivClick()">
<ul>
<li id="{{$index}}" ng-repeat="data in layer" ng-include="'recursion.html'"></li>
</ul>
</div>
<script type="text/ng-template" id="recursion.html">
<textarea myd-keypress cols="63" rows="1">{{data.content}}</textarea>
<input type="text" myd-numbers value="{{data.price}}"></input>
<ul>
<li ng-repeat="data in data.layer" ng-include="'recursion.html'" id="{{$parent.$attr('id') + '-' + $index}}"></li>
</ul>
Mais bien sûr, cela ne fonctionne pas. Donc, en gros ce que je dois est que chaque < li> élément dom a id qui correspond à ceci:
0
1
1-0
1-1
1-1-0
1-2
1-3
2
2-0
de sorte que chaque nouvelle < li> a id qui est égal à « id de son parent » + « - indice de $ ". Ce que je sais qui fonctionnera est que scope.layer [] et ses descendants de couche contiennent un champ qui sauvera l'ID du < li> et l'affichera, mais je veux éviter d'enregistrer ce champ supplémentaire dans la DB parce que la solution à cette est vraiment simple (comme montré dans l'exemple), mais je ne peux pas surmonter la syntaxe. Aucune suggestion?
être assez simple faire une boucle récursive à travers toutes les branches du tableau 'layer' et ajouter une propriété ID à chaque objet élément et sortir cette nouvelle propriété avec une expulsion angulaire dans le balisage. Fournir un échantillon de données 'layer' – charlietfl