$ routeParams返回一个空对象

时间:2015-05-18 03:37:11

标签: angularjs ngroute

角色应用。

var self = this;
angular.module("myForm", ["ngRoute"])
     .controller("Controller", ["$scope", "$routeParams", function($scope, $routeParams){self.controller($scope, $routeParams)}]);

angular.bootstrap(document.getElementById("form"), ["myForm"]);

它返回一个空对象{}

而网址是

http://localhost:3000/admin/event/form/?id=1

控制器:

controller: function($scope, $routeParams) {
    console.log($routeParams);
},

修改

我读了添加ng-view。我做了但同样的问题

<span ng-view></span>

路由并没有真正改变,我只想在页面加载时读取这个值。

1 个答案:

答案 0 :(得分:1)

你网址中的模式?id = 1不是传递路径参数的正确方法。为了支持路线参数,人们应该定义它支持的路线和参数。路由在配置块中定义为(角度文档中的referred example):

app.config(function($routeProvider, $locationProvider) {
  $routeProvider
   .when('/Book/:bookId', {
    templateUrl: 'book.html',
    controller: 'BookController',
    resolve: {
      // I will cause a 1 second delay
      delay: function($q, $timeout) {
        var delay = $q.defer();
        $timeout(delay.resolve, 1000);
        return delay.promise;
      }
    }
  });
});

要访问路由并将param传递给上面定义的路由,必须将url构造为:

&lt; protocol&gt;&lt; domain prefix&gt; / Book / 123

所以/ Book是你的路线,123是bookId的参数值。在你的$ routeParams中,它可以作为$ routeParams.bookId

获得