【问题标题】:AngularJS infinite loop when routeParams not null当 routeParams 不为空时 AngularJS 无限循环
【发布时间】:2017-01-24 20:20:15
【问题描述】:

我正在尝试使用routeParams,以便获得部分 URL,但是当我尝试使用 GET 参数访问 URL 时,它让我陷入无限循环。目前,我定义了以下内容:

var nappet = angular.module('nappet', ['ngRoute', 'ngCookies']);

nappet.config(['$routeProvider', '$locationProvider', function($routeProvider, $locationProvider) {
    $routeProvider
        .when('/', {templateUrl: 'app/home/view/homeView.html', controller: 'homeController'})
        .when('/organizadores', {templateUrl: 'app/organizers/view/organizerView.html', controller: 'organizerController'})
        .when('/organizadores/:organizer', {templateUrl: 'app/organizers/view/organizerDetailView.html', controller: 'organizerController'})

    $locationProvider.html5Mode(true);
}]);

这是控制器:

nappet.controller('organizerController', function($scope, $location, $cookies, $http, $routeParams) {

    if($routeParams.organizer === undefined) {
        console.log('Works');
    } else {
        console.log('Infinite loop');
    }
});

所以,如果我用任何东西替换了管理器参数,它会在循环中打印“无限循环”消息,但是当我不在 URL 上使用任何参数时它会起作用。这可能是什么问题?

【问题讨论】:

  • 您是否尝试在 las when 之后添加 .otherwise({redirectTo:'/organizadores'});
  • 路由声明的顺序是倒序的
  • @charlietfl 更改了订单,但仍在继续
  • 你也可以使用通配符将这些路由组合成一个

标签: angularjs loops infinite routeparams


【解决方案1】:

您忘记将.otherwise({redirectTo:'/organizadores'}); 指令添加到您的$routeProvider

【讨论】:

  • 我已经得到了指向“/error”的否则,但我从代码中删除了
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-11-21
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多