这是我的控制器代码
.when('/showprofile/:UserID', {
templateUrl: 'resources/views/layout/showprofile.php',
controller: 'ShowOrderController',
})
我通过url传递参数。
我正试图通过网址直接访问此页面
http://192.168.1.58/myapp/#/showprofile/8
但它正在重定向到
http://192.168.1.58/myapp/#/showprofile/:UserID
如何在我的视图中获取网址值?
以下是我的app.js,这是我的authCtrl.js
答案 0 :(得分:3)
在您的控制器中尝试此操作,它将根据url值返回对象,然后我们可以获得这样的尊重值
//it will return the object
console.log($routeParams);
//get the specific url value like this
console.log($routeParams.UserID);
or
console.log($route.current.params.UserID);

答案 1 :(得分:1)
是的,但您必须在控制器中注入$state
并获取
如果你使用$ state意味着
console.log($state.params.userID);
答案 2 :(得分:1)
试试这个......
var sampleApp = angular.module('sampleApp', []);
sampleApp.config(['$routeProvider',
function($routeProvider) {
$routeProvider.
when('/ShowOrder/:orderId', {
templateUrl: 'templates/show_order.html',
controller: 'ShowOrderController'
});
}]);
sampleApp.controller('ShowOrderController', function($scope, $routeParams) {
$scope.order_id = $routeParams.orderId;
});
答案 3 :(得分:0)
是的,你在app.js中有这样的东西:
.when('/showprofile/:UserID', {
templateUrl: 'resources/views/layout/showprofile.php',
controller: 'authCtrl',
})
这意味着authCtrl被分配给此视图。 因此,将routeParams注入authCtrl是必要的(记住javascript中的依赖注入):
app.controller('authCtrl', ['$scope','$rootScope','$routeParams','$location', '$http', 'Data', function ($scope, $rootScope, $routeParams, $location, $http, Data) {
$scope.myVar = $routeParams.UserID;
console.log('UserID: ',$scope.myVar);
/* (...) */
}]);
你能告诉我,如果这个改变,在控制台中记录UserID吗?还是空的? 如果它记录,那么一切正常,您可以使用服务在各种控制器之间传递此变量。