Я новичок в Угловом. Полагаю, это простой вопрос. У меня есть json-файл, который содержит разные объекты, размещенные на моем сервере. Я получил список с каждым объектом. Теперь, когда я нажимаю на каждый элемент (объект) списка, я хочу показать детали каждого из них в подробном представлении (отличном от вида списка). Я знаю, как перенаправить на это подробное представление с помощью параметра (id), но я не знаю, как визуализировать детали этого конкретного объекта. Здесь я показываю мой код:Angular js - Как извлечь частичные данные из json-файла, расположенного на моем сервере, для подробного просмотра, передающего параметр?
data.json
[
{
"id": "1",
"name": "james",
"age": "20",
"city": "NY"
},
{
"id": "2",
"name": "allan",
"age": "21",
"city": "London"
},
{
"id": "3",
"name": "thomas",
"age": "22",
"city": "Belfast"
}
]
app.js
angular.module("myApp", ["controllers", "services", "directives", "ngRoute"]);
angular.module("myApp").config(function($routeProvider) {
$routeProvider
.when('/', {
templateUrl : 'templates/home.html',
controller : 'HomeCtrl'
})
.when('/list', {
templateUrl : 'templates/list.html',
controller : 'ListCtrl'
})
.when('/list/:id', {
templateUrl: 'templates/item.html',
controller: 'ItemCtrl'
})
.otherwise({redirectTo: '/'});
});
controllers.js
...
.controller('ListCtrl',function($scope, MyService) {
$scope.list = {};
MyService.getData()
.then(function(result) {
$scope.list=result.data;
})
.catch(function(error) {
console.log('There is an error.', error);
});
})
.controller('ItemCtrl',function($scope, $routeParams, MyService, $location) {
var id = $scope.id = $routeParams.id;
$scope.item = {};
MyService.getData()
.then(function(result) {
$scope.item=result.data;
if(id) {
return result.data[id]
}
})
.catch(function(error) {
console.log('There is an error.', error);
});
})
service.js
...
.factory('MyService', function($http) {
return { getData: getData };
function getData() {
return $http.get('data.json');
}
})
item.html
<div ng-controller="ItemCtrl">
<p>{{item.name}}</p>
<p>{{item.city}}</p>
</div>
Любое предложение?
Заранее благодарен!
Спасибо за ваш быстрый ответ, btinoco. К сожалению, появилась ошибка: произошла ошибка. TypeError: defer.resolve не является функцией (...) И список элементов тоже не отображается. Определенно, JSBin может быть полезным. – Dubliner
ОК, я работаю над jsbin – btinoco
Прохладный! Спасибо за ваши усилия. – Dubliner