2016-12-30 2 views
2

Я использую компонент дерева в моем угловом Projet, я пытаюсь Переберите объект JSON для заполнения дерева Heres мой код:Как петля объект JSON в angularjs

var myData=[{"agence":"CTM","secteur":"Safi","serie":"CZC1448YZN"},{"agence":"CTM","secteur":"Safi","serie":"2UA13817KT"},{"agence":"CTM","secteur":"Safi","serie":"2UA13817KT"},{"agence":"CTM","secteur":"Essaouira","serie":"CZC1221B85"},{"agence":"CTM","secteur":"Essaouira","serie":"CZC1221B85"},{"agence":"Gare Routiere Municipale","secteur":"Essaouira","serie":"CZC145YL3"},{"agence":"Gare Routiere Avenue des FAR CTM","secteur":"Casablanca","serie":"2AU2290Y48"},{"agence":"Gare Routiere Avenue des FAR CTM","secteur":"Casablanca","serie":"2AUD14404X"}]; 
    for(var i=0; i < myData.length; i++) { 
     // alert('roro '+myData[i].secteur); 
     treedata_avm = [{ 
      label: myData[i].secteur, 
      children: [{ 
       label: myData[i].agence, 
       children: [myData[i].serie] 
      }] 
     }]; 
    } 

Моя проблема заключается, я получил только последнюю строку в объекте json, которая равна {"agence":"Gare Routiere Avenue des FAR CTM","secteur":"Casablanca","serie":"2AUD14404X"}

Как я могу получить все данные, отображаемые в дереве ???

+0

использование 'angular.forEach (JSONObject, функция (singleObject, ключ) {// логика})' –

ответ

1

Вы заменяете предыдущее значение на номер treedata-avm, а не добавляете его в коллекцию. Что вы можете сделать, это определить пустой массив treedata_avm и вставить каждый объект в myData в него, итерации, которые вы уже делаете.

var myData=[{"agence":"CTM","secteur":"Safi","serie":"CZC1448YZN"},{"agence":"CTM","secteur":"Safi","serie":"2UA13817KT"},{"agence":"CTM","secteur":"Safi","serie":"2UA13817KT"},{"agence":"CTM","secteur":"Essaouira","serie":"CZC1221B85"},{"agence":"CTM","secteur":"Essaouira","serie":"CZC1221B85"},{"agence":"Gare Routiere Municipale","secteur":"Essaouira","serie":"CZC145YL3"},{"agence":"Gare Routiere Avenue des FAR CTM","secteur":"Casablanca","serie":"2AU2290Y48"},{"agence":"Gare Routiere Avenue des FAR CTM","secteur":"Casablanca","serie":"2AUD14404X"}]; 

var treedata_avm = []; 

for(var i=0; i < myData.length; i++) { 
    // alert('roro '+myData[i].secteur); 
    treedata_avm.push({ 
     label: myData[i].secteur, 
     children: [{ 
      label: myData[i].agence, 
      children: [myData[i].serie] 
     }] 
    }); 
} 
console.log(treedata_avm); 
+0

Он работает нормально. Скопируйте и вставьте тот же код в консоль браузера и проверьте, пожалуйста. – superUser

+0

thank u ..; он отлично работает –

+0

пожалуйста .. другой вопрос ... у меня есть дубликаты данных на моем дереве .. есть способ группировать сектант в объекте json –

0
var myData=[{"agence":"CTM","secteur":"Safi","serie":"CZC1448YZN"},{"agence":"CTM","secteur":"Safi","serie":"2UA13817KT"},{"agence":"CTM","secteur":"Safi","serie":"2UA13817KT"},{"agence":"CTM","secteur":"Essaouira","serie":"CZC1221B85"},{"agence":"CTM","secteur":"Essaouira","serie":"CZC1221B85"},{"agence":"Gare Routiere Municipale","secteur":"Essaouira","serie":"CZC145YL3"},{"agence":"Gare Routiere Avenue des FAR CTM","secteur":"Casablanca","serie":"2AU2290Y48"},{"agence":"Gare Routiere Avenue des FAR CTM","secteur":"Casablanca","serie":"2AUD14404X"}]; 

var treedata_avm = []; 
for(var i=0; i < myData.length; i++) { 
    // alert('roro '+myData[i].secteur); 
    treedata_avm.push({ 
     label: myData[i].secteur, 
     children: [{ 
      label: myData[i].agence, 
      children: [myData[i].serie] 
     }) 
    }]; 
} 

вы должны использовать функцию массива «толчок», чтобы подтолкнуть объект в новый массив; но не использовать '=';

0

Попробуйте это:

var treedata_avm = []; 
for (var i = 0; i < myData.length; i++) { 
    treedata_avm.push({ 
     label: myData[i].secteur, 
     children: [{ 
      label: myData[i].agence, 
      children: [myData[i].serie] 
     }] 
    }); 
} 

Использование .push(). будет работать для вас.

Смежные вопросы