使用ui-router加载指令的最佳方法是什么

时间:2016-02-10 09:37:15

标签: angularjs angular-ui-router

我已经按照以下方式配置了我的ui-routes:

$stateProvider
.state('home', {
        url: '/',
        template: '<home>',
        resolve: {
            authorize: ['authorization',
                function(authorization) {
                    return authorization.authorize();
                }
            ]
        }
    })

.state('manage', {
    url: 'manage',
    abstract: true,
    template:'<div ui-view></div>',
    resolve: {
        authorize: ['authorization',
            function(authorization) {
                return authorization.authorize();
            }
        ]
    }
})

.state('manage.map', {
    parent: 'manage',
    url: '/map',
    template: '<dummy>',
    resolve: {
        authorize: ['authorization',
            function(authorization) {
                return authorization.authorize();
            }
        ]
    }
})

在我的索引中。 HTML,我有一个ui-view:

<div ui-view></div>

我遇到的问题是,当我在浏览器中键入:/ manage / map(或任何其他子路由)时,视图未加载,状态被视为无效。

首先加载'home'然后使用按钮(ui-sref)访问'manage.map'状态的唯一方法。

事实上,当我有$ urlRouterProvider.otherwise('/'); 'manage.map'始终被视为无效,即使我使用ui-sref访问它,我总是被重定向到'/'。

所以我不确定我做错了什么或者使用ui-router和指令的最佳方法是什么..

1 个答案:

答案 0 :(得分:0)

问题在于缺少&#39; /&#39;从父国的定义..

.state('manage', {
    url: '/manage',
    abstract: true,
    template:'<div ui-view></div>',
    resolve: {
        authorize: ['authorization',
            function(authorization) {
                return authorization.authorize();
            }
        ]
    }
})