javascript - 编写 Angular 指令时应该将通用代码放在哪里?

标签 javascript angularjs angularjs-directive

我现在的情况是希望有许多不同的指令 标签名称,但其行为几乎相同。我的第一个想法 就是将指令捕获为如下函数:

function standardDirective(template,extract) {
  return function() {
    return {
      restrict: 'E',
      ... }
     }
  }

然后使用此函数“消除”所需的指令。

angular.module('MCQ', [])
  .directive('mcq' 
            , standardDirective("MCQTemplate.html"
                               , function(scope){return scope.userSelection;}
                               )
            );

写完这篇文章后,我很确定有一些共同点,而且可能更好 习语,用于这样做。例如,在我的“解决方案”中,我可能无法在需要时对 standardDirective 进行 Angular 加载。

(我知道我可以制定单个指令并使用属性来区分行为,但现在,让我们假设我确实需要不同的指令..)

最佳答案

您可以在指令上使用 require 选项。

这本质上确保您的指令“继承”另一个指令,例如基类。

您的“基本”指令可以包含所有通用逻辑,然后要求的其他指令对于它需要执行的任何操作都有自己的旋转。

您可以阅读更多相关信息in the Angular Docs - 请参阅创建通信指令部分

关于javascript - 编写 Angular 指令时应该将通用代码放在哪里?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25162241/

相关文章:

javascript - 如何在模板 html 属性中使用指令范围变量?

angularjs - 分页未显示在屏幕上

javascript - 所有模块和 Controller 共享 Angular 范围

javascript - 在使用 splice() 删除它们后将所有元素放回数组中

javascript - 图像的尺寸,然后检查标准并显示图像

javascript - AngularJS 和 SVG——在 <rect> 元素上使用 ng-click?

ng-change 中不考虑 Jquery datepicker 选择的日期 - AngularJS

javascript - AngularJS ng-重复加载状态

javascript - 为什么没有分号的代码在 JavaScript 中仍然可以工作?

javascript - 替换url中的所有 '-'