我有一个简单的角度示例,我无法获取URL中查询字符串的路径参数。我该怎么做?
控制器:
appRoot.controller('RegistrationController', ['$scope', '$resource', '$routeParams', function ($scope, $resource, $routeParams) {
if ($routeParams)
debugger;
}]);
主要配置文件
var appRoot = angular.module('registrationApp', ['ngRoute', 'registration.directives', 'ngResource']); //Define the main module + dependancies
//Sets up AngularJS module and routes and any other config objects
appRoot
.config(['$routeProvider', function ($routeProvider) {
//Setup routes to load partial templates from server. TemplateUrl is the location for the server view (Razor .cshtml view) - Frigin amaze-balls
$routeProvider
.when('/registration/:inviteToken', { templateUrl: 'registration', controller: 'RegistrationController' })
.otherwise({ redirectTo: '/home' });
}])
.controller('RootController', ['$scope', '$route', '$routeParams', '$location', function ($scope, $route, $routeParams, $location) {
$scope.$on('$routeChangeSuccess', function (e, current, previous) {
$scope.activeViewPath = $location.path();
});
}]);
当我浏览类似http://example.org/registration/?inviteToken=2354234之类的东西时,路线参数总是一个空物体。我也试过http://example.org/registration#/?inviteToken=2354234
值得注意的一件事是http://example.org/registration是MVC控制器
有人可以帮我理解我做错了吗?
答案 0 :(得分:0)
在您的配置中,您指定了这样的路线:
http://example.org/#/registration/2354234
(where $routeParams.inviteToken will be 2354234)
如果您想匹配此http://example.org/registration/?inviteToken=2354234
之类的网址,则需要使用其他路线:
/registration/?inviteToken=:inviteToken
<子>
我不是你知道这一点,但你定义的路由是指之后的路径#
,除非你正在使用(并且在客户端和在服务器端)&#34; HTML 5&#34;模式。
子>