我的项目有一个奇怪的问题AngularJS
。我下面有2个buttons
触发器inputs
。
<button type="button" class="btn btn-primary" data-ng-click="triggerInput('B1')">B1</button>
<input id="b1Input" type="file" accept="image/*" class="hide" onchange="angular.element(this).scope().changeImage(this)" />
<button type="button" class="btn btn-primary" data-ng-click="triggerInput('B2')">B2</button>
<input id="b2Input" type="file" accept="image/*" class="hide" onchange="angular.element(this).scope().changeImage(this)" />
我试图调试JS
代码,但这似乎还可以。不幸的是,有时我必须单击两次选定的按钮(2-4)才能打开输入。也许jQuery
选择器不好?
这是代码:
$scope.triggerInput = function (type) {
$timeout(function () {
var selector = "";
switch (type) {
case "B1":
selector = "b1Input";
break;
case "B2":
selector = "b2Input";
break;
}
$("input[id='" + selector + "']").trigger("click");
});
};
您不应在控制器中使用此行(在下面)。我认为您可以编写一条指令来填充此内容。
$("input[id='" + selector + "']").trigger("click");
更正您的代码
<button type="button" class="btn btn-primary" data-ng-click="triggerInput('B2',$event)">B2</button>
$scope.triggerInput = function (type,e) {
$timeout(function () {
var selector = "";
switch (type) {
case "B1":
selector = "b1Input";
break;
case "B2":
selector = "b2Input";
break;
}
angular.element(e.target).siblings('#'+selector).trigger('click');
//or simply write this
//$("#"+selector).trigger("click");
});
};
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句