2017-04-04 3 views
0

Ich habe einige Jsons Daten wie unten, wenn ich versuchte, sie rekursiv mit ng-include und ng-template (wie unten gezeigt), die ng-Include innerhalb von HTML-Codes nicht gerendert und es ist leer. und ein anderes Problem ist, dass beim Drucken ng-include, es nur 1 Ebene der Rekursion drucken und es nicht weiter drucken.html nicht gerendert in ng-template angular

also was ist los?

Json Daten:

[{"name":"default","path":">var>www>rapa-v2>themes>","subdir":[{"name":"css","path":">var>www>rapa-v2>themes>>default","subdir":[{"name":"images","path":">var>www>rapa-v2>themes>>default>css","subdir":[]},{"name":"style.css","path":">var>www>rapa-v2>themes>>default>css"}]},{"name":"index.blade.php","path":">var>www>rapa-v2>themes>>default"},{"name":"information.json","path":">var>www>rapa-v2>themes>>default"},{"name":"screen.jpg","path":">var>www>rapa-v2>themes>>default"}]}]

HTML-Code:

<div class="theme-files-list ltr" ng-init="loadDir('{{ $theme }}')"> 
    <script type="text/ng-template" id="directoryTree"> 
     <div class="tree-item"> 
     <i class="fa fa-file-text-o maroon"></i> 
     <a href="<% '/admin/setting/template/edit/{{ $theme }}/'+item.name %>"> 
      <% item.name %> 
     </a> 
     </div> 
     <ul ng-if="item.subdir"> 
      <li ng-repeat="item in item.subdir" ng-include="'directoryTree'"></li> 
     </ul> 
    </script> 
    <ul class="noselect"> 
     <li> 
      <div class="tree-item bg-aqua"> 
      <i class="fa fa-paint-brush blue"></i> 
      {{ ucfirst($theme) }} 
      </div> 
      <ul> 
      <li ng-repeat="item in themeDir" ng-include="'directoryTree'"></li> 
      </ul> 
     </li> 
    </ul> 
</div> 

wichtig: Ich verwende Laravel und Messersystem Druck, habe ich Winkeldrucksymbole ersetzt {{}} mit <%%>

+1

Sie können Laravel verwenden '@ {{}}' die Sie nicht benötigen die Winkel 'ändern {{}}' Syntax – PaladiN

Antwort

0

Ich denke du musst einen anderen Code verwenden. Ihr JSON repräsentiert einen Ordnerbaum, aber in der eckigen App durchlaufen Sie nur die erste Ebene und in der ersten Ebene haben Sie nur einen Eintrag mit Unterverzeichnis.

Wenn Sie Ihre JSON-Antwort richtig formatieren, können Sie dies leicht verstehen.

[ 
    { 
    "name":"default", 
    "path":">var>www>rapa-v2>themes>", 
    "subdir": 
     [ 
     { 
      ******** You're targeting this element below ********** 
      "name":"css", 
      "path":">var>www>rapa-v2>themes>>default", 
      "subdir": 
        [ 
        { 
         "name":"images", 
         "path":">var>www>rapa-v2>themes>>default>css", 
         "subdir":[] 
         }, 
         { 
         "name":"style.css", 
         "path":">var>www>rapa-v2>themes>>default>css" 
         } 
        ] 
     }, 
     { 
     ******** This doesn't has subdir ********** 
      "name":"index.blade.php", 
      "path":">var>www>rapa-v2>themes>>default" 
     }, 
     { 
     ******** This doesn't has subdir **********    
      "name":"information.json", 
      "path":">var>www>rapa-v2>themes>>default" 
     }, 
     { 
     ******** This doesn't has subdir ********** 
      "name":"screen.jpg", 
      "path":">var>www>rapa-v2>themes>>default" 
     } 
     ] 
    } 
] 

So müssen Sie die json ändern oder zu ändern ng-repeat

+0

Ich habe versucht, die Ordner und Dateien mit Unterverzeichnis-Eigenschaft zu trennen, also was ist Ihr Vorschlag für JSON-Format? – Abolfazl

+0

Ich habe noch ein Problem. – Abolfazl

Verwandte Themen