(function () {
"use strict";
var app = angular.module("myApp",
["common.services",
"$rootScope",
"ui.router",
"ui.mask",
"userService",
"ui.bootstrap"]);
app.config(["$stateProvider", "$urlRouterProvider","$rootScope",
function ($stateProvider, $urlRouterProvider, $rootScope) {
$urlRouterProvider.otherwise("/");
$stateProvider
.state("index", {
url: "/",
templateUrl: "app/index.html",
})
// Home page /* SECURED */
.state("home", {
url: "/home",
templateUrl: "app/home/home.html",
controller: "HomeController as vm",
data: {
requiresLogin: true
}
})
// Login
.state("login", {
url: "/login",
templateUrl: "app/login/login.html",
controller: "LoginController as vm"
})
}]
);
$rootScope.$on('$stateChangeStart', function (e, to, userService) {
if (to.data && to.data.requiresLogin) {
if (!userService.user.loggedIn()) {
//token not found/not valid
e.preventDefault();
$location.path('/login');
}
}
});
}());
문제가 무엇인지 게시하지 않았지만 아무것도 작동하지 않는다고 가정합니다. 그렇다면 여기에 코드에 대한 명백한 문제가 있습니다 $rootScope
. 응용 프로그램 모듈에 대한 모듈 종속성으로 사용하려고 합니다.
올바른 모듈 정의는 다음과 같아야합니다.
angular.module("myApp", [
"common.services",
"ui.router",
"ui.mask",
"userService",
"ui.bootstrap"
])
나는 "$rootScope"
목록에서 제거 했다.
UPD . 자세히 살펴보면 또 다른 문제가 드러났습니다. $ rootScope를 구성 블록에 삽입 할 수 없습니다. 실행으로 이동 :
app
.config([...])
.run(['$rootScope', function($rootScope) {
$rootScope.$on(...);
}];
이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.
침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제
몇 마디 만하겠습니다