Ajax 如何在使用$evalAsync成功发布后刷新表
我需要在发布成功后更新我的表,而无需重新加载页面。我有一个成功的推杆工作,但我不能让它与邮政工作。 工作 不起作用Ajax 如何在使用$evalAsync成功发布后刷新表,ajax,angularjs,Ajax,Angularjs,我需要在发布成功后更新我的表,而无需重新加载页面。我有一个成功的推杆工作,但我不能让它与邮政工作。 工作 不起作用 //Post New Job $scope.submitJob = function () { var data = { JobId: $scope.newItems.JobId, JobNumber: $scope.newItems.JobNumber, JobName: $scope.newItems.JobName,
//Post New Job
$scope.submitJob = function () {
var data = {
JobId: $scope.newItems.JobId,
JobNumber: $scope.newItems.JobNumber,
JobName: $scope.newItems.JobName,
JobDescription: $scope.newItems.JobDescription,
}
$http.post('/api/apiJob/PostNewJob', data).success(function (data, status, headers) {
console.log(data);
$scope.cancelNewJobModal();
$scope.$evalAsync(function () {
$scope.data;
});
});
};
从你写的内容来看,不清楚你想要实现什么 我从你的代码中看到,你正在发布一个作业来保存它。首先,服务器是否正确保存,响应是什么(例如,成功处理程序中的数据)?然后,如果您的作用域中有一个作业数组,则必须手动将新项推送到该数组中 因此,为了给出一个提示,下面是您的代码片段,经过修改以将新作业推送到集合:
//Post New Job
$scope.submitJob = function () {
var data = {
JobId: $scope.newItems.JobId,
JobNumber: $scope.newItems.JobNumber,
JobName: $scope.newItems.JobName,
JobDescription: $scope.newItems.JobDescription,
};
$http.post('/api/apiJob/PostNewJob', data)
.success(function (data, status, headers) {
// Clone newItem, newItem is a reference
var tmpNewItem = angular.copy($scope.newItem);
// This assumes you have $scope.jobslist as your collection
// Now we can attach cloned newItem to collection
$scope.jobslist.push(tmpNewItem)
// Reset newItem, no need for $apply like this
angular.copy({}, $scope.newItem);
$scope.cancelNewJobModal();
});
};
我在这里设置了一个推送新项目(不带$http)的快速示例
另外,在您的代码示例中,由于双向数据绑定,更新似乎可以工作。Angular正在立即更改值,并且不依赖服务器正确保存。为什么需要$evalAsync?我不确定如何执行此操作,我想我需要使用$apply或$digest,但在阅读后对us$evalAsync说。我不知道该找什么。在我只是使用windowreload之前,我想要的是不重新加载整个页面的东西等等,我不认为需要使用任何摘要触发器,因为调用是使用$http进行的,响应应该已经与摘要周期同步。我想知道这个问题是否隐藏在其他地方。你的意思是将
$scope.data
设置为某个值吗?不,我只是插入一些东西看看它做了什么
//Post New Job
$scope.submitJob = function () {
var data = {
JobId: $scope.newItems.JobId,
JobNumber: $scope.newItems.JobNumber,
JobName: $scope.newItems.JobName,
JobDescription: $scope.newItems.JobDescription,
};
$http.post('/api/apiJob/PostNewJob', data)
.success(function (data, status, headers) {
// Clone newItem, newItem is a reference
var tmpNewItem = angular.copy($scope.newItem);
// This assumes you have $scope.jobslist as your collection
// Now we can attach cloned newItem to collection
$scope.jobslist.push(tmpNewItem)
// Reset newItem, no need for $apply like this
angular.copy({}, $scope.newItem);
$scope.cancelNewJobModal();
});
};