我希望在npm上开源一个角度指令,我试图想出最常用的模式。怎么样?我有3个问题:
!function(name, make) {
make = make()
// 1. Is this line needed?
var angular = require('angular')
// 2. Is this line needed?
angular.module(name, []).directive(name, make)
if (typeof module != 'undefined') module.exports = make
else this[name] = make
// 3. Is this line needed?
if (typeof define == 'function') define(function() { return make })
}('exampleDirective', function() {
return function() {
return {
link: function (scope, label, atts) {}
}
}
});
require('angular')
或假设角度变量存在是否安全?angular.module
和angular.directive
,或者只有消费应用才能这样做?module.exports
或全球足够?答案 0 :(得分:1)
<强> 1 强>
// 1. Is this line needed?
var angular = require('angular')
没有。使用您的库的应用程序必须始终导入自己的AngularJS版本。
<强> 2 强>
// 2. Is this line needed?
angular.module(name, []).directive(name, make)
是。应用程序需要在其依赖项列表中列出您的模块name
,如下所示:
var myApp = angular.module('myApp',[name]);
第3 强>
// 3. Is this line needed?
if (typeof define == 'function') define(function() { return make })
}('exampleDirective', function() {
return function() {
return {
link: function (scope, label, atts) {}
}
}
});
没有。您可以将指令放在模块上,其他开发人员也可以使用它。