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 回答