- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我尝试在刷新数据后将更改应用于 ui 网格,但出现此错误:
angular.js:13236 Error: [$rootScope:inprog] $apply already in progress
http://errors.angularjs.org/1.5.0/$rootScope/inprog?p0=%24apply
at angular.js:68
at beginPhase (angular.js:17178)
at Scope.$digest (angular.js:16616)
at Scope.$apply (angular.js:16928)
at Scope.$scope.submitForm (app-controllers.js:652)
at fn (eval at compile (angular.js:14086), <anonymous>:4:335)
at expensiveCheckFn (angular.js:15076)
at callback (angular.js:24546)
at Scope.$eval (angular.js:16820)
at Scope.$apply (angular.js:16920)
有什么问题吗?我的代码在下面
获取数据
var initialData = []
var getData = function (castomUrl) {
$http.get(castomUrl)
.success(function (data) {
// console.log(data)
// Considering Angular UI-Grid, the data should be declared inside as scope var and put it inside gridOptions
$scope.initialData = data;
// $scope.gridOptions.data = $scope.initialData;
// ***
angular.forEach($scope.initialData, function (val) {
val.occuredDate = new Date(val.occuredDate);
});
// $interval whilst we wait for the grid to digest the data we just gave it
$interval(function () {
$scope.gridApi.selection.selectRow($scope.initialData[0]);
}, 0, 1);
});
};
getData(urlData);
通过点击获取行值
gridApi.selection.on.rowSelectionChanged($scope, function (row) {
// api call to get row Data and update for current row
var dataRow = row.entity;
$scope.id = dataRow.id;
$scope.getRowData();
});
$scope.getRowData = function(){
eventService.singleEvent($scope.id)
.then(function (data) {
$scope.rowData = data.model;
$scope.rowKeys = Object.keys($scope.rowData);
}).then(function () {
$scope.getUpdate();
});
};
eventService.singleEvent 在哪里
function singleEvent (id) {
return $http.get(apiUrl+id)
.then(function (serviceResp) {
return serviceResp.data;
});
}
以html格式显示行数据
<form style="padding: 15px" ng-submit="submitForm(rowData)">
<div class="form-group row">
<div ng-repeat="(key, value) in rowData">
<div ng-if="(key === 'id' || key.toLowerCase().endsWith('id') === false) ? true : false">
<label for="rowData" class="col-sm-2">{{key | makeUppercase
}}</label>
<div class=" col-sm-2">
<input class="form-control rowValue"
id="rowData[key]"
ng-disabled="disableInput(key)"
ng-if="!isObject(value)"
type="text"
ng-model="rowData[key]"
/>
<input
class="form-control rowValue"
id="rowData[key].name"
ng-disabled="disableInput(key)"
ng-if="isObject(value) && key !== 'status' && key !== 'priority' && key !== 'severity'"
type="text"
ng-model="rowData[key].name"
/>
<select ng-if="isObject(value) && key == 'status'"
ng-model="rowData.statusId"
class="form-control rowValue"
id="statusId"
ng-options='item.id as item.name for item in eventLov.statusOptions()'>
<option value=''>{{value.name}}</option>
</select>
<select ng-if="isObject(value) && key == 'priority'"
ng-model="rowData.priorityId"
class="form-control rowValue"
id="priorityId"
ng-options='item.id as item.name for item in eventLov.priorityOptions()'>
<option value=''>{{value.name}}</option>
</select>
<select ng-if="isObject(value) && key == 'severity'"
ng-model="rowData.severityId"
class="form-control rowValue"
id="severityId"
ng-options='item.id as item.name for item in eventLov.severityOptions()'>
<option value=''>{{value.name}}</option>
</select>
</div>
</div>
</div>
</div>
<button type="submit" class="btn btn-default" ng-if="rowData">Save</button>
<button type="button" class="btn btn-default" ng-if="rowData"
ng-click="cancelForm()">
Cancel
</button>
</form>
提交修改
$scope.submitForm = function (event) {
$scope.modifyEvent(event);
$timeout( function(){
$rootScope.refresh();
}, 100);
};
$scope.modifyEvent = function (event) {
// $log.info(event);
eventService.modifyEvent(event)
};
更新服务
function modifyEvent (event) {
return $http({
method : 'PUT',
url : apiUrl + event.id,
data : event
}, event)
.then(function success (result) {
$log.info("Update Successful");
return result.data;
}, function error( err ) {
$log.error(" update has been failed ", err);
});
}
刷新网格
$rootScope.refresh = function () {
$log.info("fired");
eventService.events();
$scope.$apply();
}
刷新服务
function events () {
return $http.get(apiUrl)
.then(function (serviceResp) {
return serviceResp.data;
});
}
最后我看到了错误
$apply already in progress
但是数据已经上传到数据库并修改了。有什么问题?
最佳答案
修复 1 -
使用
$timeout(function(){
$scope.$apply()
... write your code here
},0)
摘要循环完成时触发。
修复 2 -
如果摘要循环正在运行,$scope.$$phase
将返回 true,否则返回 false,但它在您的情况下没有用,因为它不提供任何回调函数。
也不推荐使用
关于javascript - ($根作用域 :inprog) $apply already in progress,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37974523/
我需要在我的 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
我是一名优秀的程序员,十分优秀!