,我发现了错误从angularjs函数内触发点击事件引起错误
[$ rootScope:inprog] $正在进行
已经申请每当我触发click事件在隐藏文件上传输入。
HTML:
<!-- button that calls function in controller -->
<button type="button" ng-click="uploadClicked()">Upload</button>
<!-- Upload input I'm triggering the click event on -->
<input type="file" accept="image/*" id="profile-photo" name="profile-photo" ng-hide="true"/>
AngularJS功能控制器:
$scope.uploadClicked = function() {
//Causes Error: [$rootScope:inprog] $apply already in progress and opens file dialog
document.getElementById('profile-photo').click();
//Causes Error: [$rootScope:inprog] $apply already in progress and does not open file dialog
$('#profile-photo').trigger('click');
};
我不会在我的控制器调用$apply
或$digest
任何地方。为什么会发生这个错误?
因为angularjs在后台执行某些操作,所以你在那个地方触发'click'冲突。 –
这很不幸。有关如何规避此问题的任何建议? –
尝试在$ timeout中包装它 –