Javascript 编写角度指令时,应将公共代码放在何处?
我所处的情况是,我希望有许多不同的指令 标记名称,但其行为几乎相同。我的第一个想法 只是将指令捕获为如下函数:Javascript 编写角度指令时,应将公共代码放在何处?,javascript,angularjs,angularjs-directive,Javascript,Angularjs,Angularjs Directive,我所处的情况是,我希望有许多不同的指令 标记名称,但其行为几乎相同。我的第一个想法 只是将指令捕获为如下函数: function standardDirective(template,extract) { return function() { return { restrict: 'E', ... } } } 然后使用此函数“清除”所需的指令 angular.module('MCQ', []) .directive('mcq'
function standardDirective(template,extract) {
return function() {
return {
restrict: 'E',
... }
}
}
然后使用此函数“清除”所需的指令
angular.module('MCQ', [])
.directive('mcq'
, standardDirective("MCQTemplate.html"
, function(scope){return scope.userSelection;}
)
);
在写了这篇文章之后,我很确定有一些共同点,可能更好
成语,用来做这件事。例如,在我的“解决方案”中,我可能无法在需要时将角度载荷设置为standardDirective
(我知道我可以制作一个指令并使用属性来区分行为,但现在,让我们假设我确实需要不同的指令。您可以在指令上使用
require
选项
这从本质上确保您的指令“继承”另一个指令,如基类
您的“base”指令可以包含您所有的公共逻辑,然后是另一个指令,该指令是所要求的
,它有它自己的自旋,不管它需要做什么
您可以阅读有关它的更多信息-请参阅创建通信指令一节