我有不同的模块。如果用户尝试查看个人资料页面,他将被重定向到索引页面以进行登录。 app.profile.routes
具有Auth
功能,但它也适用于app.index.routes
,为什么?是与$rootscope
有关还是我的模块依赖设置错了?
例如,如果我尝试查看app.index.routes中定义的网址,系统会要求我登录。
app.feed.routes
是app.feed
的路径文件,app.index.routes
是app.index
的路径文件。
我有一个主index.html(在那里定义了ng-app =“app”)我将每个.js文件合并到一个名为index.js的文件中
router.all('/*', function(req, res, next) {
res.sendFile(path.resolve('index.html'));
});
这是我的主要app.js。
angular.module('app', [
'ngMaterial',
'ngMessages',
'hm.readmore',
'ng-fx',
'ngAnimate',
'ui.router',
'app.feed',
'app.profile',
'app.index'
]);
angular.module('app.feed', ['app.feed.routes']);
angular.module('app.feed.routes', []);
angular.module('app.profile', ['app.profile.routes']);
angular.module('app.profile.routes', []);
angular.module('app.index', ['app.index.routes']);
angular.module('app.index.routes', []);
轮廓routes.js
angular.module('app.profile.routes')
.run(['$rootScope', '$state', '$stateParams', 'Auth',
function($rootScope, $state, $stateParams, Auth) {
$rootScope.$state = $state;
$rootScope.$stateParams = $stateParams;
$rootScope.$on('$stateChangeStart', function(event, toState, toParams, fromState) {
var val2 = function() {
return Auth.isLoggedIn().then(function(rt) {
if (rt.data.length) {
console.log("text " + rt.data.length);
}
}).catch(function(err) {
console.log("please sign in");
var shouldLogin = toState.data !== undefined && toState.data.requireLogin;
console.log(shouldLogin);
$state.go('login');
event.preventDefault();
});
};
val2();
});
}
])