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

Using routes defined in imported modules in angularJS

假设我想将我的控制器及其视图模块化为一个凉亭组件。我的想法是我想在这个模块上定义路由来响应'/login'url。

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 状态不存在。

是的,应该可以,但您必须在 $stateProvider 中注册您的状态。

但是,如果您想在外部模块之后加载的 "core" 模块中定义 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"      
  });
});