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