由于某种原因,当我在路由中拥有动态属性并访问该页面时,我陷入了无限循环,该页面将不断请求自己。
.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”),就好像发生了这种情况。
有人知道原因吗?
愚蠢的我,我意识到了问题所在。我想这很有意义,但是当页面深处有多个“目录”时,模板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: "/" }); }]);
希望这可以帮助其他有类似问题的人。