Вот файл JSOn, который извлекается из моего API:
{
"pid":12925,
"a":"How is this a palindrome hexagon oriennted? (digits should not be repeated)",
"c":"",
"opts":{
"A":"216",
"B":"69",
"C":"72",
"D":"96",
"answer":"X"
},
"ansDetails":{
"ans":"<p>This is question is invalud</p>",
"ansPid":null,
"pt":"X"
}
}
Угловой код, который я написал:
контроллер:
testControllers.controller('DetailsController', ['$scope', '$http','$routeParams' ,function($scope, $http, $routeParams) {
$http.get('http://url_of_theapi').success(function(data) {
$scope.questions = data;
$scope.parseInt = parseInt;
});
}]);
Посмотреть:
<section class="a">
<div class="mcq">
<div>
<h3>QUESTION</h3>
<p class>{{questions.pid}}</p>
<ul>
<li class= "optlist" ng-repeat="item in questions.opts">
<label class="formgroup">
<input type="radio" name = "q">
{{item.val}}
</label>
</li>
</ul>
</div>
</div>
</section>
Как это исправить? Это проблема углового или JSON?
Проблема: данные JSON не отображаются.
Обновление: ошибка возникает из-за:
Запрос на перекрестный запрос заблокирован: политика одинакового происхождения запрещает чтение удаленного ресурса по адресу http://url_of_api. (Причина: заголовок CORS "Access-Control-Allow-Origin" отсутствует).
Как это исправить?
Я думаю, вам нужно преобразовать json в объект с помощью JSON.parse(jsonString)
или других доступных функций.
{{ item.val }}
не существует,
либо используйте {{ item }}
или если вы хотите, чтобы ключ также сделал ваш ngRepeat
следующим:
'ng-repeat="(key, val) in questions.opts"'
поэтому на первой итерации:
{{ key }} => a
{{ val }} => 216
questions.t
не отображается.