- android - RelativeLayout 背景可绘制重叠内容
- android - 如何链接 cpufeatures lib 以获取 native android 库?
- java - OnItemClickListener 不起作用,但 OnLongItemClickListener 在自定义 ListView 中起作用
- java - Android 文件转字符串
我正在尝试在模型中的属性更改时发送表单(使用指令)(因此我观察属性),但是当我触发提交事件时,我收到错误:“错误:[$rootScope :inprog] $digest already in progress", 我怎样才能避免这个错误,这是我的代码:
app.directive("autoSubmit", function(){
return {
link: function(scope, element, attrs){
scope.$watch("valid", function(){
if(scope.valid == 1) {
console.log("send form");
element.triggerHandler("submit");
}
});
}
}
});
他是这样的:http://plnkr.co/edit/cosJLkhUEKv55G8uU1Ea (要重现错误,只需将文本框的值更改为 1)
预先感谢您的帮助。
最佳答案
问题是当您尝试触发事件时,已经有一个 $digest 循环在运行(显然是 watch
循环)。所以你应该等到它完成并在下一个事件中引发事件。你可以为此$timeout
服务:
app.directive("autoSubmit", function($timeout) {
return {
link: function(scope, element, attrs) {
scope.$watch("valid", function() {
if (scope.valid == 1) {
console.log("send form");
$timeout(function() {
element.triggerHandler('submit');
})
}
});
}
}
});
另一种方法是使用 $parse
服务手动调用 ngSubmit
函数:
app.directive("autoSubmit", function($parse) {
return {
link: function(scope, element, attrs) {
scope.$watch("valid", function() {
if (scope.valid == 1) {
console.log("send form");
var submitHandler = $parse(attrs.ngSubmit)(scope);
if (submitHandler) {
submitHandler();
}
}
});
}
}
});
关于javascript - 错误 : [$rootScope:inprog] $digest already in progress,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25196722/
我需要在我的 Angular JS Web 应用程序中切换 View 。 为了处理路由,我使用 $stateProvider,如下所示: .config(['$httpProvider', '$sta
我开始使用 Angular Material 并很难理解 $scope.apply 功能的问题...我尝试通过调用 apply 来通知 UI 有关更改的信息,但失败并出现错误。我知道也有类似的问题,但
我尝试在刷新数据后将更改应用于 ui 网格,但出现此错误: angular.js:13236 Error: [$rootScope:inprog] $apply already in prog
我正在尝试编写一个将给定模板和范围呈现为字符串的服务。 这是代码: utilModule.factory('CompilerService', ['$compile', '$templateCache
我收到 angularjs [$rootScope:inprog] 错误。 错误:[$rootScope:inprog] http://errors.angularjs.org/1.2.7/$root
我有输入字段: 焦点事件绑定(bind)到此方法: scope.focus = function (e, names) { scope.dateSet = false;
在我的项目中,我尝试上传图像,将其读取为 dataURL 并将其存储到我的数据库中。 我的 HTML ng-click 使用 true 或 false 作为参数调用这些方法(一个执行 body 图像,
我正在尝试在模型中的属性更改时发送表单(使用指令)(因此我观察属性),但是当我触发提交事件时,我收到错误:“错误:[$rootScope :inprog] $digest already in pro
有没有一种方法可以在下面的代码片段中应用范围而不引发错误? (并且没有像 try/catch、$timeout 或硬编码 BONJOUR 这样的黑客和解决方法) 如果没有 SCOPE.$apply()
我对 Angular 不是很好,但我知道一些基础知识。现在,我有接入点并想将它们分配给建筑物。我可以用 选择这座建筑.我写了一个简单的 Controller ,但它不会工作。我做错了什么,我找不到解
我为此搜索并尝试了很多方法,我想也许我只是做错了。 我有一个单页应用程序,它具有非常相似的 DOM 片段,仅通过从服务输入到它们的数据来区分。每个 DOM 片段都有不同的 Web 服务。 我的 HTM
我正在尝试更新属于 $scope 的页面上的一些文本。但我不断收到此错误: Error: [$rootScope:inprog] [http://errors.angularjs.org/1.2.15
AngularJS 1.5.9 出现了一个非常奇怪的异常 [$rootScope:inprog] null already in progress 以下是引发此异常的源代码: function beg
我试图在按下一个键时触发一个按钮的点击。我正在使用 triggerHandler 函数执行此操作,但这会导致上述错误。我想我一定创建了某种循环引用/循环,但我看不到在哪里。 这是我的 HTML: 这
我正在显示一个按钮,单击该按钮会定位一个输入元素 一旦找到该元素(使用 jquery),我就会尝试发出单击。虽然这确实有效(选择文件对话框打开),但我还在 angularjs 中收到 $rootS
我经常收到“$apply已经在进行中”的错误代码: public addFile(): void { if (window["File"]) { $("#fileSelecto
关于此错误的其他帖子总是包括有人在不使用安全应用的情况下尝试 $apply,但在我的示例中并非如此。我的函数成功返回了我从 API 请求的数据,但我无法清除这个错误,这让我发疯。 每次在 $http
我想创建自定义文件上传组件。我在 html 中做了以下代码 HTML 代码 // don`t want to render default Browse JS 代码 $scope.clickUploa
我是一名优秀的程序员,十分优秀!