我无法构建一个存储所有配置数据的角模块,然后将其包含在我的主角度模块中。
其想法是系统能够更改配置数据。所以主模块代码和控制器代码是相同的,但是配置模块是不同的。
我已经尝试了许多不同的方法来使这个工作,但他们都给了我一系列的错误。
我的配置模块如下所示
(function( ){
angular.module('favoriteeats.config')
.constant('GLOBAL_CONFIG', {
'base_uri': '".url( )."'
});
});我的主(浓缩)模块如下所示。注意,我用它作为括号的刀片模板。
(function( ){
var app = angular.module('favoriteeats', ['favoriteeats.config','ngResource'], function($interpolateProvider) {
$interpolateProvider.startSymbol('<%');
$interpolateProvider.endSymbol('%>');
})();我的控制器看起来像这样。
(function( ){
var app = angular.module('favoriteeats');
app.controller('EntrustRolePermissions', function($scope, $controller) {
angular.extend(this, $controller('BaseController', {$scope: $scope}));
var vm = this;
vm.roles = [ ];
vm.user_roles = [ ];
vm.updateRoles = function(){
ret = vm.restApi('role','GET');
console.log(ret);
}
vm.updateRoles( );
}) //end contoller
})();当我在头中包含配置模块脚本时,我会得到这个错误。
“错误:$injector:modulerr未能实例化模块收藏:$injector:modulerr未能实例化模块favoriteeats.config,原因是:$injector:nomod模块'favoriteeats.config‘不可用!您要么拼错了模块名,要么忘记加载它。如果注册模块,请确保将依赖项指定为第二个参数。”
当我在页脚中包含配置模块脚本时,在延迟加载JS之后,我会得到相同的错误。
如果我将配置模块脚本添加到单独的JS文件中,并在主模块js文件之前或之后添加此脚本,则会得到相同的错误。
它的唯一工作方式似乎是如果我包括在相同的‘(函数( ){’容器作为主模块。即
(function( ){
angular.module('favoriteeats.config')
.constant('GLOBAL_CONFIG', {
'base_uri': '".url( )."'
});
var app = angular.module('favoriteeats', ['favoriteeats.config','ngResource'], function($interpolateProvider) {
$interpolateProvider.startSymbol('<%');
$interpolateProvider.endSymbol('%>');
})();为什么会这样呢?如何从另一个位置提取它并包含我的配置脚本!?!??我找不到答案来判断出了什么问题。
发布于 2015-07-13 14:22:29
应该通过指示模块的依赖项(在本例中为空数组)来声明模块,然后必须执行该函数:
(function( ){
angular.module('favoriteeats.config', [])
.constant('GLOBAL_CONFIG', {
'base_uri': '".url( )."'
});
})();发布于 2015-07-13 14:20:15
你有错误的生活。
(function( ){
angular.module('favoriteeats.config')
.constant('GLOBAL_CONFIG', {
'base_uri': '".url( )."'
});
}); // This does not close the IIFE. 改为:
(function( ){
angular.module('favoriteeats.config')
.constant('GLOBAL_CONFIG', {
'base_uri': '".url( )."'
});
}()); // or })();编辑;我甚至没有注意到这样一个事实:您不是在定义模块,而是引用它。就像@joao和@mithon建议的-添加一些括号:
angular.module('favoriteeats.config', [])发布于 2015-07-13 14:23:23
您引用的是“favoriteeats.config”模块,而不是定义它。如果您添加了依赖项的空列表,那么它应该可以工作。
angular.module('favoriteeats.config', [])https://stackoverflow.com/questions/31385827
复制相似问题