我开发了一个AngularJS应用程序,该应用程序使用browserify并将模块作为依赖项注入主应用程序。在所有模块中,我希望能够从routingConfig.js文件访问全局配置。
部分代码:
主app.js
var routingConfig = require('./common/config/routingConfig');
module.exports = angular.module('app', [
// modules as dependencies
require('./home/home').name,
require('./login/login').name
]);
module home.js
var HomeCtrl = require('./homeController');
module.exports = angular.module('app.home', [
'home/home.tpl.html',
'ui.router'
])
.config(function config($stateProvider) {
$stateProvider
.state('home', {
url: '/',
controller: 'HomeCtrl',
templateUrl: 'home/home.tpl.html',
data: {
pageTitle: 'Home'
/**
* I want to be able to use values from routingConfig here...
*/
}
});
})
.controller('HomeCtrl', ['$scope', HomeCtrl]);
我当然可以在每个模块中都需要routingConfig,这样就行了,但理想情况下,我希望能够只需要一次并在主应用程序及其模块中全局使用它。任何想法都会非常感激。
答案 0 :(得分:2)
我想到了解决方案。
1)创建一个名为'app.config'的新模块,并使用角度常量服务(https://docs.angularjs.org/api/auto/service/ $ provide#constant)来注册和使用你的配置:
var routingConfig = require('./common/config/routingConfig');
module.exports = angular.module('app.config', [
])
.constant('routingConfig', routingConfig);
2)将此“app.config”模块添加到app.js
中的模块依赖项列表中 module.exports = angular.module('app', [
// modules as dependencies
require('./config/routingConfig').name,
require('./home/home').name,
require('./login/login').name
]);
3)您现在可以注入routingConfig并使用它:
module.exports = angular.module('app.home', [
'home/home.tpl.html',
'ui.router'
])
.config(function config($stateProvider, routingConfig) {
... use routingConfig here...
});