Итак, для приложения AngularJS, которое я создаю, мы ранее использовали локальные файлы JSON для импорта данных в приложение с использованием маршрутизации.Удаленные данные AngularJS с параметрами URL
storiesControllers.controller('StoryDetailCtrl', ['$scope', '$sce', '$http', '$location', '$routeParams', function($scope, $sce, $http, $location, $routeParams) {
$scope.storyID = $routeParams.storyID;
$http.get('/story/'+$routeParams.storyID+'.json')
.success(function(data) {
$scope.story = data;
});
}]);
Однако мы собираемся получать данные непосредственно с сервера. Только одна строка изменяется следующим образом:
storiesControllers.controller('StoryDetailCtrl', ['$scope', '$sce', '$http', '$location', '$routeParams', function($scope, $sce, $http, $location, $routeParams) {
$scope.storyID = $routeParams.storyID;
$http.get('http://website.co.uk/?id='+$routeParams.storyID)
.success(function(data) {
$scope.story = data;
});
}]);
Этот метод работает на самом высоком уровне для фильтрации истории по категориям:
$http.get('http://mywebsite.co.uk/?category=CategoryName')
Но на индивидуальной истории это совершенно пустой, и никакие данные не загружены.
URL и параметр верны и работают нормально, данные на сервере в порядке и соответствуют именно локальным файлам, так почему это не работает?
Я пропустил что-то действительно очевидное?
Проблемы с перекрестным происхождением? – Shomz
Нет, мы допустили CORS и т. Д. Как я уже сказал, на верхнем уровне он работает. Список всех историй с использованием ng-repeat в порядке, но когда я перехожу к конкретному идентификатору с помощью маршрутизации, он просто пуст. Я знаю, что вызов URL с параметрами работает, но он просто ничего не показывает ... – Mike
Вы видите, что вызов был сделан в «http://website.co.uk/?id=whatever» в ваши сетевые инструменты? Когда вы говорите, что ничего не показывает, происходит ли вызов, есть ли данные, возвращающиеся назад, можете ли вы увидеть что-нибудь в объекте данных, который вы используете для $ scope.story? –