AngularJS - 在尝试从url获取参数时,页面以角度js重定向到其他页面

时间:2015-07-22 10:35:06

标签: javascript php angularjs

这是我的控制器代码

.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

4 个答案:

答案 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吗?还是空的? 如果它记录,那么一切正常,您可以使用服务在各种控制器之间传递此变量。