Учитывая следующую директивуТестирование фокусировки() на элементе в AngularJS директивы шаблона
directive('myDirective', function() {
return {
restrict: 'A',
scope: {},
replace: false,
template: '<input ng-focus="onFocus()" type="text" />',
link: function(scope, element, attr) {
scope.onFocus = function() {
console.log('got focus');
};
}
};
});
Я проверил, что фокус наблюдающий работает в браузере, но я хотел бы, чтобы иметь возможность вызвать его в единичном тесте. Это то, что я пробовал, но он не работает.
var element = angular.element('<div my-directive></div>');
$compile(element)($scope);
$scope.$digest();
element.find('input')[0].focus();
Я могу видеть, что я правильно добраться до ввода с вызовом найти, и я ожидаю, что код, чтобы вызвать событие фокуса на поле ввода, но ничего не происходит. Что мне здесь не хватает?
Я не думаю, что вам нужно сделать 'element.find ('input') 'элемент _is_ входной тег – dcodesmith
Заменить установлено значение false. 'element' - это div, и внутри него находится тег ввода. – grivescorbett
О, я пропустил эту часть – dcodesmith