2015-11-24 2 views
0

У меня проблема с разбором данных JSON. На моем объекте 2 у меня будет «t_quartier», а значение будет просто ссылкой, указывающей на объект 1. Как я могу получить это значение, если я нахожусь на моем элементе 2?

enter image description here

спасибо много

ответ

2

Вы могли бы использовать это:

angular.module('app').service('commonService', commonService); 

function commonService() { 

    //DFS for fixing JSON references 
    var elements = {} 

    this.fixReferences = function (json) { 
     var tree = json; 

     for (var x in tree) { 
      if ((typeof (tree[x]) === 'object') && (tree[x] !== null)) { 
       var result = dfsVisit(tree[x]); 
       tree[x] = result; 
      } 
     } 

     return tree; 
    } 

    function dfsVisit(tree) { 
     for (var x in tree) { 
      if ((typeof (tree[x]) === 'object') && (tree[x] !== null)) { 
       var result = dfsVisit(tree[x]); 
       tree[x] = result; 
      } 
     } 
     if (tree["$ref"] !== undefined) { 
      var ref = tree.$ref; 
      if (elements[ref] !== undefined) { 
       tree = elements[ref]; 
      } 

     } else if (tree["$id"] !== undefined) { 
      var element = tree; 
      elements[element.$id] = element; 
     } 

     return tree; 
    } 
} 

Вы могли бы определить эту функцию везде, где вы хотите, но услуга будет чистым способом.

Для его использования:

angular.module('app').factory('yourService', yourService); 

/*@ngInject*/ 
function yourService($http, commonService) { 
    var service = { 
     get: get 
    }; 

    return service; 

    function get() { 
     return $http.get('Your url').then(function (response) { 
      var fixedData = commonService.fixReferences(response.data); 
      return fixedData; 
     }); 
    }  
} 
+0

спасибо, я новый в угловатый, как я буду называть эту функцию, когда мне нужен мой объект? каков входной параметр и выходной параметр этой функции? – ALFA

+0

Я отредактировал ответ, чтобы показать вам, как его использовать. Надеюсь, поможет! –

+0

Я тестировал, он работает, большое спасибо :). Но так в производительности, если есть много данных? – ALFA

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