【发布时间】:2017-05-09 12:40:57
【问题描述】:
我已经看过这篇帖子 AngularJS best practices for module declaration? 但我仍然对声明和分离模块、控制器、服务等的 angularJS 文件的最佳方法感到有些困惑。
我知道将控制器和服务包装在 IIFE 中是一种很好的做法,因为它可以防止它们被超出范围使用。最好将控制器和模块分离到单独的文件中以进行组织。
我的问题是,如果我有一个控制器文件
我的Ctrl.js
(function(){
"use strict";
app.controller("myCtrl", ['$scope', function($scope) {
$scope.firstName = "John";
$scope.lastName = "Doe";
}]);
})();
指令文件
myDirective.js
(function(){
"use strict";
app.directive("w3TestDirective", function() {
return {
template : "I was made in a directive constructor!"
};
});
})();
在自己的文件中声明模块的最佳做法是什么
myModule.js
是否应该将其保留在全局范围内,以便任何东西都可以按如下方式访问它:
var app = angular.module("myApp", []);
或者有没有办法将它包装在像 IIFE 这样的东西中,以使其不受全局范围的影响,但仍然可以被其他文件访问?
【问题讨论】:
标签: javascript angularjs module declaration iife