Angularjs 传递查询参数

Angularjs pass query parameter

现在我正在调用以下代码:

http://localhost:8081/cgi/#/home

它把我带到我的主页。

我的 app.js 是:

angular.module('myModule', 
    ['ngRoute', 'ngCookies', 'ui.bootstrap', 
     'angularUtils.directives.dirPagination'])
.config([ '$routeProvider', function($routeProvider) {

$routeProvider.when('/index', {
    controller : 'homeController',
    templateUrl : './app/views/index.html',
})

.when('/', {
    controller : 'homeController',
    templateUrl : './app/views/home.html'
})

.otherwise({
    redirectTo : '/'
});
}])

现在我需要添加额外的参数 "debug",我可以将其存储在我的控制器中,如果它在那里我需要调用一些函数。

我尝试将以下添加到我的 app.js

    .when('/debug', {
    controller : 'homeController',
    templateUrl : './app/views/home.html',
    })

和下面一行到我的控制器

$scope.debug = $routeParams.debug === 'true' ? true : false;
console.log($scope.debug);

在我的控制器中:

var app = angular.module('myModule');
app.controller('homeController', function($scope, $http, $route) {
    $scope.debug = $routeParams.debug === 'true' ? true : false;
    console.log($scope.debug);
}

还请包括 url 您认为可以作为答案,因为我可以理解从哪里开始寻找 routeProvider 或 $location 功能

但是页面现在已停止加载,我不知道如何让它工作。 请帮助

您需要将$routeParams 服务注入控制器。只需将其作为参数添加到控制器函数即可。

var app = angular.module('myModule');
app.controller('homeController', function($scope, $http, $route, $routeParams) {
    $scope.debug = $routeParams.debug === 'true' ? true : false;
    console.log($scope.debug);
}

---更新---

路径

使用$location.path() === '/debug'检查当前路径是否为'/debug'。您需要注入 $location 服务。

var app = angular.module('myModule');
app.controller('homeController', function($scope, $http, $route, $location) {
    $scope.debug = $location.path() === '/debug';
    console.log($scope.debug);
}

查询参数

这将允许您检查是否有键控为 "debug" 且值为 "true" 的查询参数。

http://localhost:8081/cgi/#/home?debug=true

var app = angular.module('myModule');
app.controller('homeController', function($scope, $http, $route, $location) {
    $scope.debug = $location.search().debug;
    console.log($scope.debug);
}