0
У меня есть директива, которая может быть либо атрибутом, либо элементом. Когда это атрибут, я не хочу загружать шаблон внутри существующего элемента, на котором он был объявлен. Когда это элемент, я хочу загрузить данный шаблон и заполнить специальный тег директивы.Угловая директива optional 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