我会更清楚,更深刻地理解角度模块的使用。 我有一个指令文件夹,其中每个指令都在单独的文件中。
我的第一个文件(第一个指令)有一个
的声明angular.module("Name",["Dep1","Dep2"]).directive(....)
我的第二个文件声明
angular.module("Name").directive(.....)
我的第三个文件声明
angular.module("Name").directive(.....)
等等。
我的文件引用是这样的。
<script src="FirstFile"></script>
<script src="SecondFile"></script>
<script src="ThirdFile"></script>
我有几个问题:
1.如何在每个文件中删除angular.module(“Name”)声明?
答案 0 :(得分:2)
典型的最佳做法是创建module.js
或app.js
文件,您可以在其中声明模块以及任何config()
或run()
操作
module.js
angular
.module('MyModule', ['dependency1', 'dependecy2'])
directive1.js
angular
.module('MyModule')
.directive('Directive1' directive1Fn)
directive2.js
angular
.module('MyModule')
.directive('Directive2' directive2Fn)
的index.html
<body>
<div>...</div>
<script src='angular.js'></script>
<script src='module.js'></script>
<script src='directive1.js'></script>
<script src='directive2.js'></script>
</body>
如果您不希望在每个声明中调用angular.module(...)
,您可以将指令功能导入module.js
并在那里声明它们(但这取决于您的工具链如何进行此操作)即
var d1 = require('./directive1.js')
var d2 = require('./directive2.js')
angular
.module('MyModule', ['dependency1', 'dependecy2'])
.directive('Directive1' d1)
.directive('Directive2' d2)
答案 1 :(得分:1)
欢迎来到AngularJs!
回答你的问题:
您始终可以使用对象表示法:
var app = angular.module("Name",["Dep1","Dep2"]);
//now your app has an instance of the angular modudle which you just initialized
app.directive("Directive1",function(...));
app.directive("Directive2",function(...));
您的第一个声明将始终必须包含依赖项数组。这是初始化模块的angular语法。如果你再次这样做,即初始化两个具有相同名称的角度模块,angular会给你一个错误。
答案 2 :(得分:1)
您的第一个文件声明角度模块。将第二个参数传递给angular.module
函数时,就会声明它。如果没有参数,您引用它。
声明模块:
angular.module('moduleName', ['dep1', 'dep2'])
参考模块:
angular.module('moduleName');
模块只能声明一次。
声明后,您可以“附加”控制器和服务等。
关于你的第二个问题,通常可以按照你的方式(angular.module("name")
)来参考模块。
但是,如果您真的不想,可以将其保存到变量中。
var myModule = angular.module('name');
myModule.directive('directiveName', ...);
答案 3 :(得分:1)
1.如何在每个文件中删除angular.module(&#34; Name&#34;)声明?
可能的方式
SomeNamespace.myApp,directive(..)
在其他档案中
var x = angular.module('ngAppName',[])
您还可以删除名称空间&amp;创建一个简单的
x
并在创建此指令或控制器或服务时使用angular.module("Name",[]);
。
基本上你需要创建一个全局变量。
为什么我的第一次宣言必须是 angular.module(&#34;名称&#34; [&#34; DEP1&#34;&#34; DEP2&#34;])
这是因为你在其他模块上有所依赖。
例如,它可以是ui-router或bootstrap-ui。
如果您的应用程序不在其他模块上,它可以是一个安培数组
{{1}}