为什么我的指令模块没有包含在我的Angular应用程序模块中?

时间:2015-08-15 05:02:06

标签: javascript angularjs

刚刚学习Angular,我遇到了一些模块解析问题。在js/directives/directives.js中,我将以下指令限定为directives模块:

angular.module("directives").directive("selectList", function() {
    return {
        restrict: 'E',
        link: function() {
            // do stuff 
        }
    }
});

在我的网页上:

<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.4.4/angular.js"></script>
<script>
    angular.module("editUserApp", ["directives"])
        .controller("editUserController", ['$http', '$scope', function($http, $scope) {
            // do stuff here 
        }]
    );
</script>

我得到的错误如下:

Error: [$injector:modulerr] Failed to instantiate module editUserApp due to:
[$injector:modulerr] Failed to instantiate module directives due to:
[$injector:nomod] Module 'directives' is not available! You either misspelled the module name or forgot to load it. If registering a module ensure that you specify the dependencies as the second argument.

现在,很显然,editUserApp无法知道directives的位置,所有这些,所以如何告诉它获取directives.js文件?我是否必须将其包含在脚本标记中(它看起来不太可扩展)?

我需要一些方法将指令导入我的角度应用程序。我怎么能这样做?

2 个答案:

答案 0 :(得分:0)

你需要

angular.module("directives" ,[])

在你的第一个区块

angular.module("directives")

尝试查找名为directives

的现有模块

如果您正在寻找根据需要导入这些文件的方法,您可能需要查看http://requirejs.org/http://browserify.org/或类似工具。

答案 1 :(得分:0)

您需要将js / directives / directives.js文件包含在html中,并删除对App模块的指令依赖性。

你的代码应该是:

    <script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.4.4/angular.js"></script>
    <script>
    angular.module("editUserApp", [])
        .controller("editUserController", ['$http','directives', '$scope', function($http, $scope,directives) {
            // do stuff here 
        }]
    );
    </script>