У меня есть эта директива:
hpDsat.directive('ngElementReady', [function() {
return {
restrict: "A",
link: function($scope, $element, $attributes) {
// put watches here.
console.log(" WHAT THE @#%*%$??? ");
$scope.$eval($attributes.ngElementReady);
}
};
}]);
Я никогда не вижу вывод console.log
. Я объявляю такой элемент:
<div data-ng-element-ready="console.log(' ------------------------------- COMPILED! ')" data-ng-if="analysis.type" data-ng-show="showBasicHtml" data-ng-include="analysis.type+'Content.html'"></div>
Да, я объявляю директиву, прежде чем объявить контроллер, под которым существует элемент div
. Элемент появляется, ngShow и ngInclude работают, и что-либо в загруженном шаблоне тоже отлично работает (больше директив, контроллеров, {{expression}} и т.д.).
Если я выполняю его с помощью функции компиляции, функция компиляции работает, но все же не является функцией ссылки:
hpDsat.directive('ngElementReady', [function() {
return {
restrict: "A",
compile: function($element, $attributes) {
console.log("This I do see."); // THIS WORKS!!
return function($scope) {
// put watches here.
console.log("But not this. Why???"); // DOESN'T WORK!!
$scope.$eval($attributes.ngElementReady);
};
}
};
}]);
Консоль .log функции компиляции работает нормально, но возвращаемая функция ссылки все равно никогда не выполняется.
Любая идея, почему функция ссылки не может быть запущена?