将角度ui-router命名视图拆分为模块

时间:2014-03-01 23:20:09

标签: angularjs angular-ui-router

我在state模块中定义了以下app

$stateProvider .state('app', { abstract: true, url: '/', views: { 'header': { templateUrl: 'header.tpl.html' }, 'content': { template: 'Content goes here' }, 'footer': { templateUrl: 'footer.tpl.html' } } });

但是,我想将headerfooter放在单独的角度模块中,并将它们作为模块依赖项加载。喜欢 - app.header& app.footer

因为,我无法重新宣布国家。并且,具有相同URL的两个状态不起作用。那么,有什么办法可以实现这个目标吗?

1 个答案:

答案 0 :(得分:1)

可能这有点旧了,但我想回答可能对未来的参考有用。
看看ui-router GitHub上的this issue,在我看来它可以提供帮助。

事物的要点由以下2个代码块表示:

// File1.js
angular.module('myApp').config(function($stateProvider) {
    $stateProvider
        .state("toplevelfeature", {
            url: '/topleavelFeature'...
        })
        .state("toplevelfeature2", {
            url: '/topleavelFeature2'...
        })
        .state("toplevelfeature.midfeature", {
            url: '/midFeature'...
        })
        .state("toplevelfeature.midfeature2", {
            url: '/midFeature2...'
        })
        .state("toplevelfeature.midfeature.anothernestedfeature", {
            url: '/anothernestedfeature...'
        })
});

// File2.js
angular.module('myApp').config(function($stateProvider) {
    $stateProvider
        .state("toplevelfeature.midfeature.anothernestedfeature.home", {...
        })
        .state("toplevelfeature.midfeature.anothernestedfeature.detail", {...
        })
        .state("toplevelfeature.midfeature.anothernestedfeature.other", {...
        })
});