以编程方式触发ngf-select

Trigger ngf-select programmatically

本文关键字:ngf-select 方式触 编程      更新时间:2023-09-26

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

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')。我已经浪费了几个小时试图找出为什么这个不工作的原因,如果有人有类似的问题,请帮助我找出问题所在。

注。不要注意变量名,它们只是用于演示。

问题不出在angular的ngf-select中,而出在指令使用的input[type=file]中。Input[type=file]必须由用户创建的事件初始化,所以如果你想用一个函数打开文件上传窗口,你必须从用户创建的事件中调用该函数。我希望这对遇到类似问题的人有所帮助。