У меня есть директива, которая загружает внешний HTML-файл в качестве шаблона, используя шаблон templateURL. В контроллере есть функция, которая полагается на то, что DOM будет полностью выполнена правильно. Функция выдает ошибку, потому что ожидаемый элемент DOM не готов при вызове функции.шаблон шаблона angularjs vs templateURL rendering timing
JS:
app.directive('directiveName',function(){
return{
restrict:'A',
replace: true,
template: '<div id="elmID"></div>', //** THIS ONE WORKS **//
templateURL:"template.html", //** THIS ONE THROWS AN ERROR **//
scope:false,
link: function(scope, elm, attrs){},
controller:function($scope){
console.log(document.getElementById('elmID'));
}
});
TEMPLATE: template.html
<div id="elmID"></div>
В действительности мой файл template.html довольно большой, так что я не хочу, чтобы использовать встроенный код. Кто-нибудь знает работу?
'templateUrl', а не' templateURL' , Это чувствительно к регистру – Phil
Кроме того, вы не должны делать вещи DOM в контроллере. Сделайте это в функции link (postLink) – Phil