具有URL参数的AngularJS远程数据

时间:2014-10-20 15:17:12

标签: angularjs

因此,对于我正在构建的AngularJS应用程序,我们之前使用本地JSON文件使用路由将数据导入应用程序。

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和参数正确且工作正常,服务器上的数据很好并且与本地文件完全匹配,那么为什么这不起作用?

我错过了一些非常明显的东西吗?

1 个答案:

答案 0 :(得分:2)

好的,答案实际上是由我的一位同事发现的。事实证明,而不是:

$scope.story = data;

我需要使用:

$scope.story = data[0];

我不确定方括号0的相关性,但它似乎修复了它!