我有几个使用相同链接功能的指令。 (链接函数根据用例添加一些额外的状态和html。)所以我声明如下:
function common_linkfunc(){...}
var Directive_1 = function($scope, etc) {
return {restrict:"E", ...
link: common_linkfunc,
controller: function($scope, etc) {...}
};
}
Directive_1.$injects = ["$scope", "etc"];
angular.module("module").directive("D1", Directive_1)...;
第一个变化是需要链接功能时$compile
。接下来我需要添加$templateCache
,我的问题是如何系统地执行此操作?
我的第一种方法是将common_linkfunc
重写为
function foo($compile, $templateCache) {
return common_linkfunc($compile, $templateCache) {...}
}
然后在每个指令中使用它:
... link:foo($ compile,$ templateCache), ...
但这是复制粘贴!是否有一种更简单,更不容易出错的方法呢?