0
所以我有一个指令可以是属性或元素。 当它是一个属性时,我不想在已声明的现有元素内加载任何模板。 当它是一个元素时,我想加载给定的模板并填充指令的自定义标签。Angular指令可选templateUrl
我已经试过:
return {
link: function(){...},
templateUrl: function(element, attrs){
url = "path/to/directive/template.html";
// Checking if directive is used as an attribute here
if(angular.isDefined(attrs.myDirective)){
url = null; // Tried false, empty string, etc. but angular not happy with any of it
}
return url;
}
}
任何想法如何实现这一目标?
不认为你可以为2个指令使用相同的名称。 – charlietfl
@charlietfl:你可以。它非常适合将新行为附加到现有指令。 (例如记录每个ng-click激活) – Iain
感谢您的回复,问题是我在链接函数中使用了角度提供程序。这些提供程序在.directive()函数中声明。 '.directive('myDirective',['$ timeout',function($ timeout){}])''。如果链接函数在外面,它会引发错误,因为提供者是未定义的。 – MonsieurNinja