我目前正在开发一个angularjs网站,它有1个模块,每个标签都有不同的控制器。我遇到的问题是以下代码块运行正常,用户被重定向到登录页面并且控制器启动。
angular.module('ScheidsPortal', ['ngRoute', 'ui.grid', 'ui.grid.edit'])
.config(['$routeProvider', '$locationProvider', function ($routeProvider, $locationProvider) {
$routeProvider
.when('/', {
templateUrl: 'app/login/login.html',
controller: 'loginController'
})
.otherwise('/');
$locationProvider.html5Mode(true);
}])
.run(function ($rootScope, Interface) {
});
但是当在运行函数中注入$location
时:
.run(function ($rootScope, Interface, $location) {
路由功能停止工作,不使用重定向且控制器未加载。在控制器中使用$location
实例不会产生任何问题。
缺少什么?
答案 0 :(得分:0)
我找到了解决自己问题的方法:在index.html中,我使用名为“menu”的组件作为我的应用程序的根目录。
<body>
<menu></menu>
</body>
<div ng-view></div>
是菜单组件模板的一部分。
由于此组件有时未呈现,因此并不总是加载$ routeProvider。将<div ng-view></div>
放入index.html可以创造奇迹。
在plunker中,您可以看到它的工作原理:在控制台日志中显示“登录控制器”,显示正在加载控制器。 (不知何故,html没有显示在页面中,但在开发者控制台中,F12,你可以看到html代码)