使用angularJS中导入模块中定义的路由

时间:2017-06-29 22:19:46

标签: angularjs angular-ui-router bower

让我们说我想模块化我的控制器及其视图是一个凉亭组件。我的想法是,我想在此模块上定义路由以响应' / login'网址。

var routes = [
    {
        "key": "aes",
        "value": {
            "abstract": true,
            "url": "",
            "templateUrl": "modules/logincliente/views/common-layout.html",
            "controller": "commonLayoutController as commonLayoutC"
        }
    },
    {
        "key": "aes.loginCliente",
        "value": {
            "url": "/login",
            "views": {
                "content": {
                    "controller": "LoginClienteController as loginClienteC",
                    "templateUrl": "modules/logincliente/views/loginCliente.html"
                }
            }
        }
    }
];

所以当我将这个模块导入我的应用程序时,它应该有效吗?现在我的应用程序说aes.loginCliente状态不存在。

1 个答案:

答案 0 :(得分:0)

是的,它应该有效,但你必须在$stateProvider注册你的状态。

如果你想在"核心"中定义abstract状态,它可能不适用于抽象状态。模块在外部加载后。

尝试这样的事情:

// this module can be loaded externally, before the other one
angular.module('aes.loginClient', [])
.config(function($stateProvider){
  $stateProvider.state('login', {
    url: "/login",
    "controller": "LoginClienteController as loginClienteC",
    "templateUrl": "modules/logincliente/views/loginCliente.html"     
  });
});


angular.module('aes', ['aes.loginClient'])
.config(function($stateProvider){
  $stateProvider.state('home', {
    url: "/",
    templateUrl: "modules/home/views/home.html",
    controller: "commonLayoutController as commonLayoutC"      
  });
});