首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >角方向的UMD模式

角方向的UMD模式
EN

Stack Overflow用户
提问于 2016-12-08 22:05:08
回答 1查看 320关注 0票数 2

我希望开源,一个关于npm的角度指令,并且我试图想出这样做的最普遍的模式。这个怎么样?我有三个问题:

代码语言:javascript
复制
!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) {}
    }
  }
});
  1. 是否需要require('angular'),还是假定存在角变量是安全的?
  2. 是否有必要在我的定义中调用angular.moduleangular.directive,还是只有消费应用程序才能这样做?
  3. AMD环境需要这个吗?还是module.exports或全局足够?
EN

回答 1

Stack Overflow用户

发布于 2016-12-09 02:56:03

1

代码语言:javascript
复制
  // 1. Is this line needed?
  var angular = require('angular')

不是的。使用库的应用程序必须始终导入自己版本的AngularJS。

2

代码语言:javascript
复制
  // 2. Is this line needed?
  angular.module(name, []).directive(name, make)

是。应用程序需要在它们的依赖项列表中列出模块name,如下所示:

代码语言:javascript
复制
var myApp = angular.module('myApp',[name]);

3

代码语言:javascript
复制
  // 3. Is this line needed?
  if (typeof define == 'function') define(function() { return make })
}('exampleDirective', function() {
  return function() {
    return {
      link: function (scope, label, atts) {}
    }
  }
});

不是的。您只需将指令放在模块上,其他开发人员就可以使用它了。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/41049668

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档