dul*_*tem 21 javascript angularjs
我可能会有某种误解.我使用角度ui路由器,我有下一个问题:
我有下一个州提供者:
angular
.module('MainApp')
.config(['$stateProvider', '$urlRouterProvider', function ($stateProvider, $urlRouterProvider ) {
$stateProvider
.state('register', {
url: "/",
abstact: true,
views: {
"side-bar": {
controller: "GetSideBarCtrl"
},
"page-body@register": {
templateUrl: "/App/Views/WelcomePage.html"
}
},
})
.state('register.Register', {
url: "Register",
views: {
"page-body": {
controller: "RegisterCtrl",
templateUrl: "/App/Views/Register.html"
}
},
})
.state('register.Login', {
url: "Login",
views: {
"page-body": {
controller: "LoginCtrl",
templateUrl: "/App/Views/Login.html"
}
},
})
//For registered and loged in users!
/* */
.state('main', {
url: "/:userId",
// abstact: true,
views: {
"side-bar": {
controller: "GetSideBarCtrl"
},
"page-body@main": {
// controller: "LoginCtrl",
templateUrl: "/App/Views/MainPage.html"
}
},
});
$urlRouterProvider.otherwise('/');
}]);
Run Code Online (Sandbox Code Playgroud)
并运行功能
angular
.module('MainApp')
.run(['$rootScope', '$state', '$cookieStore', 'principal',
function ($rootScope, $state, $cookieStore, principal) {
var cookies = $cookieStore.get('user');
if (cookies) {
principal.Authenticate(cookies.split(' ')[0], cookies.split(' ')[1]);
$state.go('main', { userId: cookies.split(' ')[0] });
} else {
$state.go('register.Login');
}
}]);
Run Code Online (Sandbox Code Playgroud)
一切正常,当存在cookie并且验证工作没有任何问题但$ state.go什么都不做,我无法弄清楚为什么,你能帮助解释我吗?
Dun*_*unc 25
是的,正如所建议的那样,$ state.go()在module.run()中无法正常工作.
我发现将$ state代码放在$ timeout中就可以了
angular.module('MainApp').run($timeout, $state, ...) {
$timeout(function() {
$state.go('main');
});
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
12528 次 |
| 最近记录: |