Repetição ng aninhada

Eu tenho algum arquivo XML fictício:

                                                                 

Usando esta biblioteca http://code.google.com/p/x2js/ eu convertê-lo para json, na variável myData

  { "Week" : { "Day" : [{ "Job" : [{ "Job" : { "Job" : { "Job" : { "_name" : "eat breakfast" }, "_name" : "prepare breakfast" }, "_name" : "get dressed" }, "_name" : "wake up" }, { "_name" : "work 9-5" } ], "_dow" : "1", "_templateDay" : "Monday" }, { "Job" : [{ "Job" : { "Job" : { "Job" : { "_name" : "eat breakfast" }, "_name" : "prepare breakfast" }, "_name" : "get dressed" }, "_name" : "wake up" }, { "_name" : "work 9-5" }, { "_name" : "football" } ], "_dow" : "2", "_templateDay" : "Tuesday" }, { "Job" : [{ "Job" : { "Job" : { "Job" : { "_name" : "eat breakfast" }, "_name" : "prepare breakfast" }, "_name" : "get dressed" }, "_name" : "wake up" }, { "_name" : "work 9-5" } ], "_dow" : "3", "_templateDay" : "Wednesday" }, { "Job" : [{ "Job" : { "Job" : { "Job" : { "_name" : "eat breakfast" }, "_name" : "prepare breakfast" }, "_name" : "get dressed" }, "_name" : "wake up" }, { "_name" : "work 9-5" }, { "_name" : "football" } ], "_dow" : "4", "_templateDay" : "Thursday" }, { "Job" : { "_name" : "go to pub" }, "_dow" : "5", "_templateDay" : "Friday" }, { "Job" : { "_name" : "work 9-5" }, "_dow" : "6", "_templateDay" : "Saturday" }, { "_dow" : "7", "_templateDay" : "Sunday" } ], "_number" : "2013-W45" } } 

Dia pode ter qualquer número de trabalhos, os trabalhos podem ser nesteds e conter qualquer número de outros trabalhos.

Agora usando este código

 

{{day._dow}} - {{day._templateDay}}

Eu posso listar os dias, isso funciona. Eu esperaria que com o seguinte código

 

{{day._dow}} - {{day._templateDay}} {{job._name}}

Posso listar dias e trabalhos de nível superior para esse dia, mas isso não funciona. (Para listar os trabalhos nesteds seria a próxima tarefa, não perguntando sobre isso agora).

Então, como listar pelo menos os trabalhos de nível superior? Também no formato json, vejo alguns trabalhos são Objects e alguns são Arrays . Como lidar com as duas situações?

Obs .: usando angular 1.2.0-rc.3

É melhor ter um formato JSON adequado em vez de usar diretamente o convertido do XML.

 [ { "number": "2013-W45", "days": [ { "dow": "1", "templateDay": "Monday", "jobs": [ { "name": "Wakeup", "jobs": [ { "name": "prepare breakfast", } ] }, { "name": "work 9-5", } ] }, { "dow": "2", "templateDay": "Tuesday", "jobs": [ { "name": "Wakeup", "jobs": [ { "name": "prepare breakfast", } ] } ] } ] } ] 

Isso tornará as coisas muito mais fáceis e fáceis de percorrer.

Agora você pode escrever o loop como –

 
{{day.dow}} - {{day.templateDay}} Jobs:
  • {{job.name}}

Se você tiver um grande object JSON nested e usá-lo em várias canvass, poderá enfrentar problemas de desempenho no carregamento da página. Eu sempre escolho pequenos objects JSON individuais e consulta os objects relacionados como carga lenta apenas onde eles são necessários.

você pode conseguir usando o ng-init

  {{s.name}} 
{{p.name}}

O código no lado do controlador deve se parecer abaixo

 $scope.getPresenters = function(id) { return SessionPresenters.get({id: id}); }; 

Enquanto a fábrica da API é a seguinte:

 angular.module('tryme3App').factory('SessionPresenters', function ($resource, DateUtils) { return $resource('api/session.Presenters/:id', {}, { 'query': { method: 'GET', isArray: true}, 'get': { method: 'GET', isArray: true }, 'update': { method:'PUT' } }); }); 

Crie uma tag fictícia que não seja renderizada na página, mas funcionará como titular para ng-repeat:

 {{featureItem.feature}}