#javascript #jquery #angularjs #json
#javascript #jquery #angularjs #json
Вопрос:
я новичок, и я хочу спросить.
я хочу получить некоторое значение из JSON API (title, course_id и т. Д.) И поместить значение в мой шаблон с помощью директивы. таким образом, в Index я могу повторить свой tempalate с данными из API.
Как получить значение из этого JSON?
Это мой код :
мой API
{
"count": 1,
"next": null,
"previous": null,
"results": [
{
"url": "http://192.168.1.37:8000/api/courses/a/",
"title": "I Love You", <-- I want to put this Value to my Template
"course_id": "1",
"starting_date": "2016-10-03"
}
]
}
Контроллер demo.js
demo.controller("demo", function($scope, $http) {
$http.get('http://192.168.1.37:8000/api/courses/'). <-- Data From my API
then(function(response) {
$scope.courses = response.data;
});
});
demo.directive("demoItemDirective", function() {
return {
scope : { demoInfo : "=info"},
templateUrl : "/app/demo.tmpl" <-- My Template
};
});
Мой шаблон demo.tmpl
<p>{{demoInfo.count}}</p> <-- Works, count Displayed
<p>{{demoInfo.results.title}</p> <-- Not works, title not displayed
Мой Index.html
<div ng-repeat="group in courses | groupCount:2">
<div ng-repeat="x in group">
<demo-item-directive info="x"></demo-item-directive>
</div>
</div>
Ответ №1:
Это должно быть
<p>{{demoInfo.results[0].title}</p>
Ваш результат содержит массив объектов.
Вам нужно получить доступ с помощью индекса.
Ответ №2:
Согласно вашему сообщению, result
это массив:
"results": [
{
"url": "http://192.168.1.37:8000/api/courses/a/",
"title": "I Love You", <-- I want to put this Value to my Template
"course_id": "1",
"starting_date": "2016-10-03"
}
]
Таким образом, вы не можете ссылаться на title
сам, вы должны ссылаться на первый элемент:
{{demoInfo.results[0].title}}
Комментарии:
1. Спасибо, приятель, это работает!