2017-04-09 124 views
0

我有一些从laravel控制器传递的正确格式的json,我想用角度递归地显示它们,但ng模板中的HTML内容未呈现。怎么了?html在ng模板中没有呈现

注:我取代的角默认标签{{}}与<%%>

<div id="treeViewContent" ng-init="getTreeData()"> 

     <script type="text/ng-template" id="directoryTree"> 
     <div class="tree-item" ng-click="loadDir(dir.address)"> 
      <i class="fa fa-folder orange"></i> 
      <% dir.name %> 
     </div> 
     <ul ng-if="dir.subdir"> 
      <li ng-repeat="dir in dir.subdir" ng-include="'directoryTree'"></li> 
     </ul> 
     </script> 
     <ul class="noselect"> 
      <li> 
      <div class="tree-item" ng-click="loadDir('/')"> 
       <i class="fa fa-hdd-o blue"></i> 
       {{ ucfirst(\Auth::user()->username) }} 
      </div> 
      <ul> 
       <li ng-repeat="dir in dirs" ng-include="'directoryTree'"></li> 
      </ul> 
      </li> 
     </ul> 

    </div> 

和getTreeData()是:

$scope.dirs = []; 

    $scope.getTreeData = function() 
    { 
     $http.post("/admin/drive/treeData", {_token: csrf_code}).then(function(response) 
     { 
     if (response.status == 200) 
     { 
      $scope.dirs = response.data; 
     } 
     else 
     { 
      Flash({status: "failed", message: "Error"}); 
     } 
     }) 
    } 

和JSON数据

[ 
    { 
     "name":"image", 
     "address":"\/image", 
     "subdir":[ 
     { 
      "name":"document", 
      "address":"\/image\/document", 
      "subdir":[ 

      ] 
     } 
     ] 
    }, 
    { 
     "name":"document", 
     "address":"\/document", 
     "subdir":[ 

     ] 
    }, 
    { 
     "name":"movies", 
     "address":"\/movies", 
     "subdir":[ 

     ] 
    } 
] 
+0

嗨@menhajrrt,a)看起来像'getTreeData()'应该在本地'$ scope'中的'dir'属性。你能提供这个函数的代码吗? b)与此同时,您可以在开发者控制台中检查** directoryTree **标记的作用域是否具有任何'dir'属性。 –

+0

@ KonstantinA.Magg嗨,a)发布更新,b)它的json数据是正确的,这个代码已经在laravel 5.2中工作,但是在laravel 5.4中它有问题。我很困惑。 – Abolfazl

回答

0

请找到plunkr链接plnkr.co/edit/B33ZhzU03CyS45a0lX4w?p=preview,上面的代码工作正常。请检查json结构或在此发布json。

+0

谢谢,发布更新并添加了json数据 – Abolfazl

+0

检查plnkr链接,它只是类似json结构。 – Srigar