2
我有一個指令,應該在控制器變量更改時打開文件選取器窗口。這裏是指令的片段:以編程方式觸發ngf-select
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);
}
});
}
};
});
我遇到的問題是,我不能觸發NGF選上的股利。當手動點擊div時,它可以很好地工作,watch函數可以正確調用element.triggerHandler('click')。我浪費了幾個小時試圖弄清爲什麼這不起作用,如果有人有類似的問題,請幫我弄清楚問題出在哪裏。
P.s.不要注意變量名稱,它們用於示範目的。
您可以將另一個變量添加到您的'ngIf'語句中,例如,而不是'ng-if =「myConditional」',你可以把'ng-if =「forceOpen || myConditional」',然後從你的控制器中切換'forceOpen' –
不知道'ngf-select'是什麼。可能嘗試使用本地點擊...'element [0] .click()' – charlietfl