首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >包括角度配置模块

包括角度配置模块
EN

Stack Overflow用户
提问于 2015-07-13 14:17:09
回答 3查看 54关注 0票数 0

我无法构建一个存储所有配置数据的角模块,然后将其包含在我的主角度模块中。

其想法是系统能够更改配置数据。所以主模块代码和控制器代码是相同的,但是配置模块是不同的。

我已经尝试了许多不同的方法来使这个工作,但他们都给了我一系列的错误。

我的配置模块如下所示

代码语言:javascript
复制
(function( ){
    angular.module('favoriteeats.config')
    .constant('GLOBAL_CONFIG', {
        'base_uri': '".url( )."'
    });
});

我的主(浓缩)模块如下所示。注意,我用它作为括号的刀片模板。

代码语言:javascript
复制
(function( ){   
    var app = angular.module('favoriteeats', ['favoriteeats.config','ngResource'], function($interpolateProvider) {
        $interpolateProvider.startSymbol('<%');
        $interpolateProvider.endSymbol('%>');   
})();

我的控制器看起来像这样。

代码语言:javascript
复制
(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文件之前或之后添加此脚本,则会得到相同的错误。

它的唯一工作方式似乎是如果我包括在相同的‘(函数( ){’容器作为主模块。即

代码语言:javascript
复制
(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('%>');   
})();

为什么会这样呢?如何从另一个位置提取它并包含我的配置脚本!?!??我找不到答案来判断出了什么问题。

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2015-07-13 14:22:29

应该通过指示模块的依赖项(在本例中为空数组)来声明模块,然后必须执行该函数:

代码语言:javascript
复制
(function( ){
    angular.module('favoriteeats.config', [])
    .constant('GLOBAL_CONFIG', {
        'base_uri': '".url( )."'
    });
})();
票数 0
EN

Stack Overflow用户

发布于 2015-07-13 14:20:15

你有错误的生活。

代码语言:javascript
复制
(function( ){
    angular.module('favoriteeats.config')
    .constant('GLOBAL_CONFIG', {
        'base_uri': '".url( )."'
    });
}); // This does not close the IIFE. 

改为:

代码语言:javascript
复制
(function( ){
    angular.module('favoriteeats.config')
    .constant('GLOBAL_CONFIG', {
        'base_uri': '".url( )."'
    });
}()); // or })();

编辑;我甚至没有注意到这样一个事实:您不是在定义模块,而是引用它。就像@joao和@mithon建议的-添加一些括号:

代码语言:javascript
复制
angular.module('favoriteeats.config', [])
票数 0
EN

Stack Overflow用户

发布于 2015-07-13 14:23:23

您引用的是“favoriteeats.config”模块,而不是定义它。如果您添加了依赖项的空列表,那么它应该可以工作。

代码语言:javascript
复制
angular.module('favoriteeats.config', [])
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/31385827

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档