2015-01-21 46 views
0

我已經創建了我會在我的角度的應用項目,使用具有以下結構的一些模擬DATAS多維數組數據:angularjs訪問

var videos = [ 
     { 
      category: 
      [ 
       { explainer: 
        [ 
         'explain1', 
         'explain2', 
         'explain3', 
        ] 
       }, 
       { cartoon: 
        [ 
         'cartoon1', 
         'cartoon2', 
         'cartoon3', 
        ] 
       }, 
       { moGraph: 
        [ 
         'moGraph1', 
         'moGraph2', 
         'moGraph3', 
        ] 
       }, 
      ] 

     } 
    ]; 

確定這裏是我想用數據做的事情:

  1. 顯示類別名稱(解釋器,卡通,運動圖形)
  2. 顯示每個類別內的DATAS(例如:當用戶選擇運動圖形,所有運動圖形下的可用的數據將被顯示)

我試圖用<ng-repeat="video in videos track by $index">但我只設法使它一維數組一樣工作(var projects = [ 'proj1', 'proj2', 'proj3'];

我真的就如何做到這一點迷惑,請大家指教thanks'much

+0

你數據格式幾乎不可用。爲什麼這麼多陣列?我想不出一種乾淨的方法來從每個'category'數組對象中獲取鍵名。現在,如果'category'只是一個帶有鍵的對象,那就是可行的,例如'category:{explainer:[...],cartoon:[...],moGraph:[...]}' – Phil 2015-01-21 03:15:05

回答

1

看起來像你只需要有很多嵌套的中繼器。例如...

就個人而言,我會改變的數據格式看起來更像這個...

var videos = [ 
    { 
     explainer: ['explain1', 'explain2', 'explain3'], 
     cartoon: ['cartoon1', 'cartoon2', 'cartoon3'] 
     moGraph: ['moGraph1', 'moGraph2', 'moGraph3'] 
    } 
]; 

然後,所有你需要的是...

<div ng-repeat="video in videos"> 
    <div ng-repeat="(category, datas) in video"> 
     <h3>{{ ::category }}</h3> 
     <ul> 
      <li ng-repeat="data in datas">{{ ::data }}</li> 
     </ul> 
    </div> 
</div> 
+0

hi Phil ,謝謝你花時間回答我真的很感激。還有一件事,對角表達式{{:: category}}中的雙冒號有什麼用處,只是好奇,因爲我試圖刪除它,但輸出保持不變。 ^^ – 2015-01-21 04:26:58

+1

雙冒號表示一次性綁定,僅在Angular 1.3+中可用,類似於綁定一次的指令。與標準的雙向綁定不同,模型不會被監視,並且如果發生變化將不會被更新。 – Enzey 2015-01-21 05:27:49