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);
}
现在我正在调用以下代码:
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);
}