这是我的代码
app.js
'use strict';
angular
.module('nameApp', ['ngResource','ui.router','ngRoute'])
.config(function($stateProvider, $urlRouterProvider) {
$stateProvider
// route for the main body
.state('app', {
url:'/',
abstract: true,
views:{
'bodyLogin': {
templateUrl : 'views/login/body.html'
},
'bodyMain': {
templateUrl : 'views/main/body.html'
}
}
})
//route for unregistered user
.state('app.mainUnreg', {
url:'',
views: {
'content@app': {
templateUrl : 'views/login/home.html',
controller : ''
}
}
})
//route for registered user
.state('app.mainReg', {
url:'',
views: {
'header@app': {
templateUrl : 'views/main/header.html',
controller : ''
},
'sidebar@app': {
templateUrl : 'views/main/sidebar.html',
controller : ''
},
'middle@app': {
templateUrl : 'views/main/home.html',
controller : ''
},
'footer@app': {
templateUrl : 'views/main/footer.html',
}
}
})
$urlRouterProvider.otherwise('/');
})
;
controller.js
.controller('BodyController', ['$scope', '$state', '$stateParams', '$rootScope', 'AuthFactory', function($scope, $state, $stateParams, $rootScope, AuthFactory){
$scope.loggedIn = false;
$scope.username = '';
$rootScope.$state = $state;
$rootScope.$stateParams = $stateParams;
if($scope.loggedIn === false){
$scope.layout = 'styles';
$state.transitionTo('app.mainReg');
}
else{
$scope.layout = 'login';
$state.transitionTo('app.mainUnreg');
}
}])
的index.html
<html lang="en" ng-app="nameApp" ng-controller="BodyController">
<head>....</head>
<body>
<div ng-if="loggedIn" ui-view="bodyLogin" class="site-wrapper" ui-sref-active="app.mainUnreg"></div>
<div ng-if="!loggedIn" ui-view="bodyMain" ui-sref-active="app.mainReg"></div>
<!-- some scripts -->
</body>
</html>
我在!loggedIn 情况下都尝试过,我可以成功访问 bodyLogin ,但是当我尝试 bodyMain 时,它失败了。
但是,如果我删除 app.mainUnreg 状态,我可以从索引中成功访问 bodyMain
任何人都可以帮助我提供任何情况,因此我可以根据来自controller.js的 loggedIn 状态动态访问这两种状态吗?
谢谢。