无法使用$ routeParams以角度方式查看重定向的数据

时间:2017-09-02 20:47:03

标签: angularjs routeparams

我有一些json格式的数据,并希望在我的html页面中查看它,我使用$ routeParams为此,但数据不能从json文件中获取。 我创建了一个这样的控制器:

    angular.module('app.controllers', [
    'app.directives'
])
    .controller('PostController', ['$scope', '$http', function ($scope, $http){
        $http.get('data/posts.json').then(function (data) {
            $scope.posts = data.data;
        });
    }])
    .controller('SinglePostController', ['$scope', '$http', '$routeParams', function($scope, $http, $routeParams) {
        $http.get('data/posts.json').then(function (data){
            $scope.post = data[$routeParams.id];
        });
    }]);

,配置为:

angular.module('app', [
    'ngRoute',
    'app.controllers'
])
    .config(['$routeProvider', function($routeProvider) {
        $routeProvider.when('/',{
            templateUrl : 'views/post.html',
            controller : 'PostController'
        }).when('/post/:id', {
            templateUrl: 'views/singlepost.html',
            controller: 'SinglePostController'
        }).otherwise({
            redirectTo : '/'
        });
    }]);

必须提取数据的html页面是:

<h1>{{post.title}}</h1>
<p>{{post.content}}</p>

帮助!

1 个答案:

答案 0 :(得分:1)

在执行http.get之前,您可能需要声明范围变量。

.controller('SinglePostController', ['$scope', '$http', '$routeParams', function($scope, $http, $routeParams) {
      $scope.post = {};  
      $http.get('data/posts.json').then(function (data){
            $scope.post = data.data[$routeParams.id];
        });