AngularJS - 页面重定向到 Angular js 中的其他页面,同时尝试从 url 获取参数
Posted
技术标签:
【中文标题】AngularJS - 页面重定向到 Angular js 中的其他页面,同时尝试从 url 获取参数【英文标题】:AngularJS - Page redirecting to some other page in angular js while trying to get parameter from url 【发布时间】:2015-10-12 04:22:13 【问题描述】:这是我的控制器代码
.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 值?
这是我的app.js,这是我的authCtrl.js
【问题讨论】:
重定向后控制台有错误吗? 我在控制台没有任何错误 你能把所有的路由器配置贴出来吗? @gonzalon 我已经更新了问题中的整个 app.js 和 authCtrl.js。你能看看吗 【参考方案1】:在你的控制器中试试这个,它会根据 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);
【讨论】:
如果你仍然没有得到意味着使用像这样的超时功能 $timeout(function() console.log($routeParams); , 100); 重定向的原因可能是什么?? 你得到了url中的参数值但是重定向是你的问题? 不,由于重定向问题,我无法获取 url 值 请检查您的 .htaccess 文件。【参考方案2】:可以,但您必须在控制器中注入 $state
并获取
如果你使用 $state 意味着
console.log($state.params.userID);
【讨论】:
【参考方案3】:试试这个...
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;
);
【讨论】:
【参考方案4】:对,你在 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);
/* (...) */
]);
您能否告诉我,如果此更改会在控制台中记录用户 ID?或者是空的? 如果它记录,那么一切正常,您可以使用服务在各个控制器之间传递此变量。
【讨论】:
它仍然重定向到 ':UseID` 你能把 .php 文件改成 .html 吗? @cyan 我已更改为 .html。但还是没有效果 @Deena 昏迷了,抱歉。 @user5071852 你在什么环境下使用它?在某些网络服务器中?也许 .htaccess 是错误的或一些权限?代码看起来不错,但请插入更多代码。以上是关于AngularJS - 页面重定向到 Angular js 中的其他页面,同时尝试从 url 获取参数的主要内容,如果未能解决你的问题,请参考以下文章
使用 AngularJS 中的 UI-Router 将状态重定向到默认子状态
在 AngularJS 中使用 $window 或 $location 重定向