6

次のディレクティブが与えられた場合

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();

検索呼び出しで入力ボックスに正しく到達していることがわかります。そのコードが入力ボックスでフォーカス イベントをトリガーすることを期待しますが、何も起こりません。ここで何が欠けていますか?

4

1 に答える 1