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