.directive('location', function () {
return {
restrict : 'A',
scope : {},
replace : true,
templateUrl : 'part.html',
link : function (scope, element, attr) {
element.hide();
}
}
})
так мол нельзя?
Вообще проследите логику:
- берем элемент DIV и вешаем на нее директиву
- компилим элемент
- вставляем в DOM и скрываем
- angular удаляет элемент и заменяет его шаблоном (с задержкой так как выполняется ajax запрос за шаблоном).
так как у нас нету возможности даже определить момент времени, когда происходит замена извне директивы, мы не может взять так просто и скрыть элемент. Развечто так, но сами понимаете, это отстой.
body.append(directive);
setTimeout(function () {
body.find('[data-location], [location]').hide();
}, 250);
Решение, отказаться от replace, вставить template вручную и отказаться от templateUrl.