ui.router netsted状态,在刷新页面时在另一个模块中定义不起作用

时间:2017-03-29 07:50:04

标签: express angular-ui-router

我的应用有两个角度模块(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()仍能正常工作,但只显示一个没有错误的空白页。

我不知道如何解决这个问题。

谢谢!

0 个答案:

没有答案