我的应用有两个角度模块(hub和bApp)。 hub模块是另一个模块(bApp)的容器。我使用ui.router进行路由和配置,如下所示:
在hub.js(中心模块)文件中:
var hub = angular.module('hub', ['ui.router', 'bApp']).config(function ($stateProvider) {
$stateProvider.state({
name: 'hub',
url: '/',
templateUrl: 'hub/views/main.html',
controller: 'MainCtrl'
}).state({
name: 'hub.frontends',
url: 'frontend',
templateUrl: 'hub/views/frontend.html',
controller: 'FrontendCtrl',
resolve: {
frontendList: function (getList) {
return getList.getAll('/api/frontend');
}
}
})
$locationProvider.html5Mode({ enabled: true, requireBase: true }).hashPrefix('!');
});
在bApp.js(bApp模块)文件中:
var bApp = angular.module('bApp',[]).config(function($stateProvider){
$stateProvider.state({
name: 'hub.book',
url: 'book',
templateUrl: 'book/views/book.html',
controller: 'bookCtrl',
resolve: {
bookList: function(getList){
return getList.getAll('/api/book');
}
}
}).state({
name:'hub.book.test',
ulr:'book/test',
template: '<h1>test</h1'
});
});
最后在快递服务器中,我配置如下(仅用于处理html5Mode):
app.all('/user/*', function (req, res, next) {
res.sendFile('static/user/index.html', { root: __dirname });
});
如果我只通过$ state.go在州之间导航,那么一切都很顺利。但是当我刷新或输入url到浏览器并按Enter键时,只有在hub模块中定义的状态才有效。
bApp模块中定义的状态不起作用。但hub.run()仍能正常工作,但只显示一个没有错误的空白页。
我不知道如何解决这个问题。
谢谢!