我有一个指令,当控制器变量发生变化时应该打开文件选择器窗口。以下是该指令的片段:
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。不要注意变量名称,它们是出于演示目的。
答案 0 :(得分:0)
问题不在于角度的ngf-select,而是在指令使用的输入[type = file]中。输入[type = file]必须由用户制作的事件初始化,因此如果要使用函数打开文件上载窗口,则必须从用户制作的事件中调用该函数。 我希望这可以帮助那些经历过类似问题的人。