Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/json/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Angularjs-分离指令文件,但保持在同一模块上_Angularjs_Angularjs Directive - Fatal编程技术网

Angularjs-分离指令文件,但保持在同一模块上

Angularjs-分离指令文件,但保持在同一模块上,angularjs,angularjs-directive,Angularjs,Angularjs Directive,我正在尝试将一个指令分离到另一个文件,而不必声明新模块-不执行以下操作: angular.module('myapp.newmodule',[]).directive 但只是: 角度.module('myapp.directives')。指令(' myapp.Directions模块存在于另一个文件中,工作正常。但当我尝试在另一个文件中使用它时,如上图所示(没有[]),它失败了 遵循它,我相信我的方法应该有效,但由于某种原因它失败了。您不需要将它们链接在一起,您发布的链接在问题的底部有答案

我正在尝试将一个指令分离到另一个文件,而不必声明新模块-不执行以下操作:

 angular.module('myapp.newmodule',[]).directive
但只是:

角度.module('myapp.directives')。指令('

myapp.Directions模块存在于另一个文件中,工作正常。但当我尝试在另一个文件中使用它时,如上图所示(没有
[]
),它失败了


遵循它,我相信我的方法应该有效,但由于某种原因它失败了。

您不需要将它们链接在一起,您发布的链接在问题的底部有答案

在第一个文件中,您需要创建应用程序模块:

var myApp = angular.module('myApp ', []);
然后在每个文件中,您可以将其他内容附加到
myApp

myApp.directive('ngValidate', ['$parse', function ($parse) {
  ....
}]);

就我个人而言,我从不将这些内容链接在一起,而是将其放在单独的文件中。

当您第一次声明模块时,它需要有dependency参数。之后,您可以仅使用module name参数引用同一个模块

/* create module */
angular.module('myapp.newmodule',['ngRoute','ngResource']);

/* declare components of same module, note same name*/
angular.module('myapp.newmodule').directive....
如果要创建新模块,需要将它们作为依赖项注入主
ng app
模块中

/* main ng-app module , injects another module you created below*/
angular.module('myapp.newmodule',['ngRoute','ngResource','myUploader']);

/* new module, must have dependency argument */
angular.module('myUploader',[]).directive...

只要引用模块名称(即使在不同的文件中)并附加指令即可。 Javascript只会看到附加到模块的内容,而不会看到它来自哪个文件

file1.js

angular.module('module-name')
    .directive('directive1', function () {
        return {
            ....
        };
    });
angular.module('module-name')
    .directive('directive2', function () {
        return {
            ....
        };
    });
file2.js

angular.module('module-name')
    .directive('directive1', function () {
        return {
            ....
        };
    });
angular.module('module-name')
    .directive('directive2', function () {
        return {
            ....
        };
    });
唯一的问题是不要忘记在视图html文件中包含这两个js文件。 说 index.html

<script src="file1.js"></script>
<script src="file2.js"></script>


hmmm这正是不起作用的。我正在执行
angular.module('myapp.newmodule').directive
,当在另一个文件服务器
angular.module('myapp.newmodule`,[])中时,由于注入错误而失败。directive
已经起作用了。声明了,等等。这是可行的!但请注意,对于一个文件中的依赖项,只能使用括号(主应用程序文件)文件1:angular.module('module-name',[])…文件2:angular.module('module-name')…否则它将无法工作。