Javascript 一个指令在angularjs中可以有不同的名称吗?

Javascript 一个指令在angularjs中可以有不同的名称吗?,javascript,angularjs,angularjs-directive,Javascript,Angularjs,Angularjs Directive,我有两个具有相同功能的指令,如下所示 angular.module('ui.directives', []) .directive('uiFoo', function() { return { restrict: 'EAC', link: function($scope, element, attrs) { //to do functionality element.append("test con

我有两个具有相同功能的指令,如下所示

angular.module('ui.directives', [])
  .directive('uiFoo', 
    function() {
      return {
        restrict: 'EAC',
        link: function($scope, element, attrs) {
          //to do functionality
          element.append("test content");
        }
       };
    })
  .directive('uiFoo1', 
    function() {
      return {
        restrict: 'EAC',
        link: function($scope, element, attrs) {
          //to do functionality
          element.append("test content");
        }
      };
    });
它们都包含相同的工作方式,就像在这里一样,将“测试内容”作为文本附加到该元素中。 有没有可能,相反,制定这两个指令。我可以为一个指令编写两个名称吗?/我可以在优化代码中使用相同的功能。 在这里,我写的是相同的代码,没有任何意义。 除了两次编写指令,还有什么优化方法吗。 我是安格拉斯的新手,请帮帮我。
提前谢谢

最简单的方法是将您的指令提取到JS对象中,然后改用它

另外,如果您希望保留在角度上下文中,可以为指令对象提供角度提供程序

但是,为什么首先要有两个功能完全相同的指令呢?
指令可以根据需要经常使用,所以对我来说这似乎是一个设计缺陷

var myDirective = [function(){
            restrict: 'EAC',
            link: function($scope, element, attrs) {
              //to do functionality
              element.append("test content");
            }
          }];

angular.module('ui.directives', [])
      .directive('uiFoo', myDirective)
      .directive('uiFoo1', myDirective);

为什么不能在同一个指令中进行配置?我很困惑,您想让两个指令完全相同吗?@PSL我想对输入和选择元素应用指令。这两个指令都有相同的功能。那么应该如何实现呢?您不需要它们有不同的名称来实现这一点。@pankajparkar您只需要一个指令就可以了。您在指令中到底在做什么?为什么不设置myDirective=function()。。。然后,如果需要注入依赖项,只需注入一次即可。请注意,要实现小型化,您将返回一个数组,例如myDirective=['$http',function($http)…]当然,您也可以提取整个函数。我会相应地改变答案。