我尝试设置一个控制器,当用户导航到特定网址时,该控制器会将用户重定向到已定义的主页。这是如此不同的用户都可以拥有自己的目标网页。
我有一个州
(function (ng, app) {
"use strict";
app.controller(
"DatabaseHomeController",
["$rootScope", "$scope", "$state", "$stateParams", "sessionService", function ($rootScope, $scope, $state, $stateParams, sessionService) {
console.log("Database home controller running");
$stateParams.systemName = sessionService.auth.DefaultSystem;
$stateParams.objectName = sessionService.auth.Homepage;
if ($stateParams.objectName) {
$state.transitionTo("database.object", $stateParams);
} else {
$state.transitionTo("login");
}
}]);
})
(angular, WebAppName);
和控制器
0x800a139e - JavaScript runtime error: [$rootScope:infdig] 10 $digest() iterations reached. Aborting!
这在Internet Explorer中可以使用一次,但在Chrome / Firefox中可以按需使用。
该行记录仅在我第一次点击主页链接或在IE中输入网址时显示。随后我会看到
if (sessionService.auth.Homepage !== "") {
$state.transitionTo("database.object", { objectName: sessionService.auth.Homepage, systemName: sessionService.auth.DefaultSystem });
} else {
$state.transitionTo("login");
}
在angular.js中
修改
现在已经有两个人问过了。 $ stateParams不是问题的原因。
DEBUG
行为完全一样,因为它只在IE上运行一次,但每次都在Firefox和Chrome中运行。
编辑2:
为$ state.go更改$ state.transistionTo对后续用法中的infinate循环没有任何影响。
答案 0 :(得分:0)
在IE下运行aplication的一个常见技巧是你不能放入console.log。
所以请注意这一行:
console.log("Database home controller running");