跑步角1.15.11
在我们的应用程序中将ui路由器从0.3.1更新到1.0.8时,似乎没有从url中识别出状态。
StateService.current {
name: "",
url: "^"
}
我们所有的州都在$ state.router.stateRegistry.states注册,我们还使用$ urlRouterProvider.otherwise('/')配置了一个备用网址;
index.html中的
<div id="app" ui-view="main"></div>
在public-main.tpl.html
中<ui-view></ui-view>
在private-main.tpl.html
中<div ui-view="mobileHeader"></div>
<div ui-view="sidebar"></div>
<div id="frame">
<ui-view></ui-view>
</div>
<div ui-view="activityFeed"></div>
<div class="page-busy" ng-hide="!loading">
<img src="assets/images/loading-bubbles-dark.svg">
</div>
我们有一个抽象的公共和私人州。
.state('public', {
abstract: true,
views: {
'main': {
templateUrl: 'app/states/abstracts/public-main.tpl.html'
}
},
data: {
access: {
isPrivate: false
}
}
})
.state('private', {
abstract: true,
views: {
'main': {
templateUrl: 'app/states/abstracts/private-main.tpl.html',
controller: 'privateMainController'
},
'sidebar@private': {
templateUrl: 'app/states/abstracts/sidebar.tpl.html',
controller: 'sidebarController'
},
'activityFeed@private': {
templateUrl: 'app/states/abstracts/activity-feed.tpl.html',
controller: 'activityFeedController'
},
'mobileHeader@private': {
templateUrl: 'app/states/abstracts/mobile-header.tpl.html',
controller: 'mobileHeaderController'
}
},
data: {
access: {
isPrivate: true
}
},
resolve: {
...some resolves
}
})
我们的私有根状态,我们的仪表板声明如下:
$stateProvider.state('private.dashboard', {
url: '/',
controller: 'DashboardController',
templateUrl: 'app/states/dashboard/dashboard.tpl.html'
})
如果state.go('public.login')或$ state.go('private.dashboard')在主控制器中被硬编码,则状态正常,启动对'onStateChange'函数的isLoggedIn和其他内容的检查。我知道'onStateChange'和其他人不赞成转换事件,但是使用$ stateEvents.provider.enabled()重新启用它们并且工作正常。
在更新ui-router之前,应用程序根据浏览器中提供的url在init上找到匹配状态,触发onStateChange检查登录等。现在没有找到状态且没有应用视图。
有人知道这是否已经改变或如何启用它?