使用 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"
});
});
假设我想将我的控制器及其视图模块化为一个凉亭组件。我的想法是我想在这个模块上定义路由来响应'/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"
});
});