【问题标题】:Angular Route Infinite Loop角路线无限循环
【发布时间】:2014-01-25 21:47:45
【问题描述】:

由于某种原因,当我的路由中有动态属性并访问该页面时,我陷入了无限循环,该页面将不断地请求自身。

.config(["$routeProvider", "$locationProvider", function($routeProvider, $locationProvider)
{
    $locationProvider.html5Mode(true);

    $routeProvider.when("/", {
        templateUrl: "pages/index.html",
        controller: "IndexCtrl"
    }).when("/listhome", {
        templateUrl: "pages/listhome.html",
        controller: "ListHomeCtrl"
    }).when("/profile", {
        templateUrl: "pages/profile.html",
        controller: "ProfileCtrl"
    }).when("/newlist", {
        templateUrl: "pages/newlist.html",
        controller: "NewListCtrl"
    }).when("/userlists/:id", {
        templateUrl: "pages/userlists.html",
        controller: "UserListsCtrl"
    }).otherwise({
        redirectTo: "/"
    });

我正在查看的路线是 /userlists/:id 路线。该路线的控制器是-

TopTenApp.controller("UserListsCtrl", ["$scope","$routeParams", function($scope, $routeParams)
{
    console.log($routeParams);
    $scope.lists = [];
}]);

当我访问 /userlists/9 时,我看到了-

Object {id: "9"}

每 3 秒记录一次,页面冻结。只要位置后面有正斜杠(“/userslists/”而不是“/userlists”),这似乎就会发生。

有人知道这是什么原因吗?

【问题讨论】:

  • 您使用哪个服务器?它是如何设置的?
  • 我遇到的另一个问题是,如果我直接通过地址栏而不是通过网站上的链接进入 /userlists/9,则会提醒整个页面的 html 内容。有人知道为什么会这样吗?
  • 忘了我说了什么。另一个逻辑问题 - 与 angularjs 无关。

标签: angularjs infinite-loop routes


【解决方案1】:

我很傻,我意识到了这个问题。我想这是有道理的,但是当页面深度为多个“目录”时,模板 url 前面需要有一个正斜杠。

.config(["$routeProvider", "$locationProvider", function($routeProvider, $locationProvider)
{
    $locationProvider.html5Mode(true);

    $routeProvider.when("/", {
        templateUrl: "/pages/index.html",
        controller: "IndexCtrl"
    }).when("/listhome", {
        templateUrl: "/pages/listhome.html",
        controller: "ListHomeCtrl"
    }).when("/profile", {
        templateUrl: "/pages/profile.html",
        controller: "ProfileCtrl"
    }).when("/newlist", {
        templateUrl: "/pages/newlist.html",
        controller: "NewListCtrl"
    }).when("/userlists/:id", {
        templateUrl: "/pages/userlists.html",
        controller: "UserListsCtrl"
    }).otherwise({
        redirectTo: "/"
    });
}]);

希望能帮助遇到类似问题的其他人。

【讨论】:

  • 谢谢!还要确保您还更新了 ng-includes 中的路径。
  • 这只是解决了我的一个类似问题(在我花了比我想承认的更多时间之后)。谢谢!
  • 这里也一样,问题是 templateUrl 拼写错误。谢谢!
  • 添加正斜杠时出现 404(未找到)错误。
  • @AJ_83 这在很大程度上取决于您的网址是如何设置的。
猜你喜欢
  • 2014-04-27
  • 1970-01-01
  • 2015-12-27
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-11-12
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多