2016-11-22 82 views
1

這裏一個plunker具有基於CSS的組織結構圖,我特林使其在角JS plunker_angular js動態,我是新來的自定義指令,數據迭代組織結構圖

有沒有什麼辦法來itrate我$scope.data請記住它的parentId來繪製組織圖我該如何使用這個指令來做這個plunker_angular js

深度圖可以是第n級,任何幫助?

+0

你已經有一個代表你的樹的數據模型(JSON)? – gyc

+0

是在[script.js](http://plnkr.co/edit/aGR7kwbTIAaAAdbU4PGD?p=preview) –

回答

1

隨着您的實際模型,這並不容易。您將不得不在使用parentId = null循環數據時快速創建UL元素。

我建議你改變你的數據模型爲對象的層次結構,像這樣:

[{ 
    'id':1, 
    'name':'Shailendra Sharma', 
    'children': [ 
    {'id':2,'name':'sonu'}, 
    {'id':3,'name':'Rahul'}, 
    {'id':4,'name':'sam'}, 
    {'id':5,'name':'Jhon'} 
    ] 
}] 

這樣父母有孩子,你可以嵌套NG-重複:

<div class="tree"> 
    <ul> 
    <li ng-repeat="d in data"> 
     <a href="#">{{d.name}}</a> 
     <ul> 
     <li ng-repeat="c in d.children"> 
      <a href="#">{{c.name}}</a> 
     </li> 
     </ul> 
    </li> 
    </ul> 
</div> 

Plunker

編輯:

要建立一個infiite樹,你可以讓指令自己調用。

<ul> 
    <li ng-repeat="d in data"> 
    <a href="#">{{d.name}}</a> 
    <hierarchical-view ng-if="d.children" data="d.children"></hierarchical-view> 
    </li> 
</ul> 

Plunker

+0

我想要一個動態指令,你的答案將失敗的第三級,是的數據模型可以模具 –

+0

@ ShailendraSharma你只是創建另一個指令,將生成的孩子http://plnkr.co/edit/Adr3iLY7gbixozZyPiiE?p=preview(有一個小的CSS問題來解決,但你有一個無限的樹工作) – gyc

+0

你甚至不需要2個指令其實。 http://plnkr.co/edit/VxygrP1MxXWAPImOS6Dg?p=preview – gyc