【发布时间】:2017-01-31 10:12:39
【问题描述】:
我正在尝试启动一个基于 ES6 的新 Angular 1 应用程序。我使用 webpack 和 babel-loader 来转换 JS。
我现在的问题是加载自己的配置模块。请看这个:
// config/config.js
import angular from 'angular';
export default angular.module('config')
.factory('config', () => {
return {
url: {
products: 'https://....'
},
products: []
}
})
相应的 app.js 读取(我剥离了一些导入):
import angular from 'angular';
import config from './config/config';
import HomeCtrl from './controller/HomeController';
let app = () => {
return {
template: require('./app.html')
}
};
const MODULE_NAME = 'app';
angular.module(MODULE_NAME, [uiRouter, config])
.directive('myapp', app)
.config(['$stateProvider', '$urlRouterProvider', 'config', function ($stateProvider, $urlRouterProvider, config) {
$urlRouterProvider.otherwise('/');
$stateProvider
.state("home", {
"url": "/",
"template": require('./views/home.html'),
"controller": HomeCtrl,
'controllerAs': 'app'
})
}]);
export default MODULE_NAME;
错误信息说:
未捕获的错误:[$injector:nomod] 模块“配置”不可用!您要么拼错了模块名称,要么忘记加载它。如果注册模块,请确保将依赖项指定为第二个参数。
我在这里错过了什么?有没有更好的方法来加载应用程序范围的配置对象以在某些服务中使用?
感谢您的帮助!
【问题讨论】:
-
如果您是从头开始,请跳过 Angular1 并使用 Angular2。
标签: javascript angularjs ecmascript-6