Angular js решает другой формат массива объектов json - PullRequest
1 голос
/ 06 марта 2019

Исходя из приведенного ниже результата, как угловое для каждого цикла может решить этот формат массива объектов json?Значение является заголовком, а идентификатор является ключевым.Любая идея?Спасибо.

mycode

me.record.questionaires = []
angular.forEach(detail.questionaires, function (value, key) {
            me.record.questionaires.push({ "id": key, "title": value })

        });

Форматированные данные JSON (подробный результат запроса)

[  
   "{'sub_title': 'dsadsa', 'instruction': 'You Must',…elimit': '01:05:19', 'title': 'asdsa', 'id': 133}",
   "{'sub_title': 'sdasdsa', 'instruction': None, 'cre…melimit': '05:30:09', 'title': 'asda', 'id': 131}"
]

Ответы [ 2 ]

2 голосов
/ 06 марта 2019

Вам необходимо

  1. Цикл по массиву
  2. Анализ строки как JSON
  3. Выдвинуть или отобразить соответствующие значения в массив questionaires (этоне понятно какие данные вы хотите)
me.record.questionaires = detail.questionaires.map(json => {
  let { id, title } = JSON.parse(json)
  return { id, title }
})
1 голос
/ 06 марта 2019

Мне пришлось немного изменить ваш отформатированный образец JSON, потому что он давал мне ошибки консоли.Пожалуйста, посмотрите, поможет ли это.

angular
  .module("myModule", [])
  .controller("myController", function($scope) {
    var me ={record: {questionaires: []}};
    $scope.me = me;
	
    var detail ={};
    detail.questionaires = [  
      "{'sub_title': 'dsadsa', 'instruction': 'You Must','…elimit': '01:05:19', 'title': 'asdsa', id: 133}",
      '{"sub_title": "sdasdsa", "instruction": "None", "cre…melimit": "05:30:09", "title": "asda", "id": 131}'
    ];

    angular.forEach(detail.questionaires, function (value, key) {
    
      var questionaire = JSON.parse(value.replace(/'/g, '"').replace(/id:/g, '"id":'));     
      me.record.questionaires.push({ "id": questionaire.id, "title": questionaire.title });
    });
});
<script src="https://cdnjs.cloudflare.com/ajax/libs/angular.js/1.7.5/angular.min.js"></script>

<div ng-app="myModule">
  <div ng-controller="myController">
  <div><strong>me.record.questionaires:</strong></div>
    <div ng-repeat="q in me.record.questionaires">
    <div>{{q}}</div>
    </div>
  </div>
</div>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...