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)…]当然,您也可以提取整个函数。我会相应地改变答案。