AngularJS -当试图从url获取参数时,在angular js中将页面重定向到其他页面


AngularJS - Page redirecting to some other page in angular js while trying to get parameter from url

这是我的控制器代码

.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

在你的控制器中试试这个,它将根据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);

是可能的,但你必须在控制器中注入$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中的依赖注入):

    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吗?还是空的?如果它记录了日志,那么一切都工作正常,你可以使用service在不同的控制器之间传递这个变量。