Это пример директивы, которую я создал, чтобы помочь понять проблему, описанную в заголовке:
define(['angular'], function(angular) {
'use strict';
var randomElement = angular.module('RandomElement', []);
randomElement.directive('randomElement', function() { return {
restrict: 'E',
transclude: false,
template: '<div><span class="random-span"></span></div>',
controller: function($scope, $element) {
// This method is triggered in a ng-click binding
$scope.findSpan = function() {
// About 20-30% of page reloads, this returns 0 results
console.log($element.find('.random-span'));
}
}
}});
return randomElement;
});
Обратите внимание на метод $scope.findSpan
. Это проблема, с которой я столкнулся: около 20-30% перезагрузки страницы, $element.find()
(или $element.children()
в этом отношении) возвращают 0 результатов.
Есть ли известная причина проблемы, с которой я сталкиваюсь? Есть ли надежное решение для передачи ссылки на подэлемент, определенный в шаблоне, в область видимости?