Я разрабатываю угловую структуру, где пользователь может настраивать заголовок, меню, нижний колонтитул и выбранные страницы с использованием пользовательских директив. Чтобы выполнить это требование, в какой-то момент мне нужно следующее. Я видел пример в сети, но на самом деле это не очень хорошо.Угловая пользовательская директива, вызывающая другую настраиваемую директиву
Требование состоит в том, чтобы templateUrl первой пользовательской директивы был заменен атрибутом шаблона, который должен вызвать другую настраиваемую директиву.
Следующий код с шаблономUrl отлично работает.
angular.module("app",[]);
angular.module("app").controller("productController", ['$scope', function ($scope) {
}]);
angular.module("app").directive("tmHtml", function() {
return {
transclude: false,
scope: {
},
controller: "productController",
templateUrl: "/templates/HideShow.html"
};
});
Однако, когда я изменю приведенный выше код, следуйте ниже. Я вношу изменения, чтобы моя настраиваемая директива tmHtml вызывала другую настраиваемую директиву.
angular.module("app").directive("tmHtml", function() {
return {
transclude: false,
scope: {
},
controller: "productController",
template: ``<hideShow></hideShow>``
};
});
Новая Директива по hideShow записывается следующим образом
angular.module("app").directive("hideShow", function() {
return {
tempateUrl: "/templates/HideShow.html"
};
});
Это не работает. Я понимаю, что здесь что-то не хватает. Я не мог понять. Цените помочь
Я использую следующую директиву в своем HTML-коде. Это, в свою очередь, вызывает директиву hideShow. –
это то, что вы сказали в вашем вопросе: 'template: ' –
Не все директивы '' директивы элемента. Документы даже отмечают, что 'Примечание. Когда вы создаете директиву, она по умолчанию ограничивается атрибутами и элементами. Чтобы создать директивы, вызванные именем класса, вам нужно использовать опцию ограничения. ' –