2

コントローラー変数が変更されたときにファイル ピッカー ウィンドウを開くディレクティブがあります。ディレクティブのスニペットは次のとおりです。

angular.module('settingsInternal')
    .directive('triggerUpload', function ($timeout) {
      return {
        restrict: 'A',
        link: function (scope, element) {
          scope.$watch('mainCtrl.watchedVariable', function (variable) {
            if (variable) {
              $timeout(function () {
                element.triggerHandler('click');
              }, 20);
            }
          });
        }
      };
    });

私が抱えている問題は、div で ngf-select をトリガーできないことです。div を手動でクリックすると問題なく動作し、watch 関数は element.triggerHandler('click') を適切に呼び出します。これが機能しない理由を突き止めようとして数時間を無駄にしました。誰かが同様の問題を抱えている場合は、問題がどこにあるのかを理解するのを手伝ってください。

Ps 変数名に注意を払わないでください。それらはデモンストレーション用です。

4

1 に答える 1

0

問題は angular の ngf-select ではなく、ディレクティブが使用する input[type=file] にありました。Input[type=file] はユーザーが作成したイベントによって初期化する必要があるため、関数でファイル アップロード ウィンドウを開きたい場合は、ユーザーが作成したイベントからその関数を呼び出す必要があります。これが、同様の問題を経験した人に役立つことを願っています。

于 2015-11-26T07:21:54.310 に答える