题 角度路径无限循环


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

.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”),这似乎就会发生。

有谁知道这个的原因?


12
2018-01-25 21:47


起源


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


答案:


傻我,我意识到了这个问题。我想这是有道理的,但是当页面是多个“目录”深度时,模板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: "/"
    });
}]);

希望这可以帮助其他有类似问题的人。


25
2018-01-25 21:49



来吧,将此标记为正确! - Stuart Nelson
谢谢!还要确保您还更新ng-includes中的路径。 - PeterB
这刚刚解决了我的类似问题(在我花了更多时间之后,我想承认)。谢谢! - kajetons
同样在这里,问题是拼写错误的templateUrl。谢谢! - Bema
添加正斜杠时,我收到404(未找到)错误。 - AJ_83