Javascript AngularJS-尝试从url获取参数时,页面重定向到AngularJS中的其他页面
这是我的控制器代码Javascript AngularJS-尝试从url获取参数时,页面重定向到AngularJS中的其他页面,javascript,php,angularjs,Javascript,Php,Angularjs,这是我的控制器代码 .when('/showprofile/:UserID', { templateUrl: 'resources/views/layout/showprofile.php', controller: 'ShowOrderController', }) 我正在通过url传递参数 我正试图通过url直接访问此页面,如下所示 http://192.168.1.58/myapp/#/showprofile/8 但它把我引向了 http://192.1
.when('/showprofile/:UserID', {
templateUrl: 'resources/views/layout/showprofile.php',
controller: 'ShowOrderController',
})
我正在通过url传递参数
我正试图通过url直接访问此页面,如下所示
http://192.168.1.58/myapp/#/showprofile/8
但它把我引向了
http://192.168.1.58/myapp/#/showprofile/:UserID
如何在视图中获取url值
这是我的,这是我的可能,但您必须在控制器中注入
$state
,然后获取
如果使用$state,则表示
console.log($state.params.userID);
试试这个
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;
});
对,app.js中有类似的内容:
.when('/showprofile/:UserID', {
templateUrl: 'resources/views/layout/showprofile.php',
controller: 'authCtrl',
})
这意味着authCtrl已分配给此视图。
因此,有必要将routeParams注入authCtrl(记住javascript中的依赖项注入):
你们能告诉我,若这个改变,在控制台中记录用户ID吗?还是空的?
若它记录了日志,那个么一切正常,您可以使用服务在不同的控制器之间传递这个变量 在您的控制器中尝试此操作,它将根据url值返回对象,然后我们可以像这样获得受尊重的值
//它将返回对象
控制台日志($routeParams);
//获取如下所示的特定url值
log($routeParams.UserID);
或
log($route.current.params.UserID)
重定向后控制台中是否有任何错误?控制台中没有任何错误。您可以发布所有路由器配置吗?@gonzalon我已经更新了问题中的整个app.js和authCtrl.js。你能看到它仍然重定向到“:UseID`你能把.php文件改成.html吗?@cyan我已经改成.html了。但仍然没有effect@Deena这是昏迷,很抱歉。@user5071852您在什么环境下使用它?在某些web服务器中?可能。htaccess是错误的还是某些权限?代码看起来不错,但请插入更多的代码。如果您仍然没有得到,请使用超时函数,如$timeout(function(){console.log($routeParams);},100);重定向的原因可能是什么??您在url中获得了参数值,但重定向是您的问题?不,由于重定向问题,我无法获得url值。请检查您的.htaccess文件。
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);
/* (...) */
}]);