以编程方式触发ngf-select

时间:2015-09-28 17:28:28

标签: javascript angularjs angular-file-upload

我有一个指令,当控制器变量发生变化时应该打开文件选择器窗口。以下是该指令的片段:

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')。我浪费了几个小时试图弄清楚为什么这不起作用的原因,如果有人有类似的问题,请帮我弄清问题所在。

P.S。不要注意变量名称,它们是出于演示目的。

1 个答案:

答案 0 :(得分:0)

问题不在于角度的ngf-select,而是在指令使用的输入[type = file]中。输入[type = file]必须由用户制作的事件初始化,因此如果要使用函数打开文件上载窗口,则必须从用户制作的事件中调用该函数。 我希望这可以帮助那些经历过类似问题的人。