Angularjs ngTable reload函数不更新表
我尝试了不同的解决方案,人们用以解决同一个问题,但我没有运气。我试图在$http调用后更新表,而不刷新整个页面。我使用“推送”更新非ngtable上的数组,没有问题。任何帮助都会很好,谢谢 我收到了这个错误消息 TypeError:无法读取未定义的属性“push” 当我删除push命令时,它什么也不做Angularjs ngTable reload函数不更新表,angularjs,ngtable,Angularjs,Ngtable,我尝试了不同的解决方案,人们用以解决同一个问题,但我没有运气。我试图在$http调用后更新表,而不刷新整个页面。我使用“推送”更新非ngtable上的数组,没有问题。任何帮助都会很好,谢谢 我收到了这个错误消息 TypeError:无法读取未定义的属性“push” 当我删除push命令时,它什么也不做 //Job Table var data = []; $http.get("/api/apiJob/").success(function (result) { data
//Job Table
var data = [];
$http.get("/api/apiJob/").success(function (result) {
data = result;
});
$scope.tableParams = new ngTableParams({
page: 1, // show first page
count: 5 // count per page
}, {
total: data.length, // length of data
getData: function ($defer, params) {
params.total(data.length);
$defer.resolve(data.slice((params.page() - 1) * params.count(), params.page() * params.count()));
}
});
//Update Job
$scope.updateJob = function (job) {
job.JobTypeId = $scope.active.JobType.JobTypeId;
job.JobClassId = $scope.active.JobClass.JobClassId;
job.GeoAreaId = $scope.active.GeoArea.GeoAreaId;
job = $scope.active;
JobUpdate.update(job).success(function (job) {
$scope.data.push(job);
$scope.tableParams.reload();
$scope.ok();
}).error(function () {
toastr.error('Error!');
})
console.log(job);
};
更新
$scope.data = []
//var data = [];
$http.get("/api/apiJob/").success(function (result) {
data = result;
});
错误消息位于data=result
ReferenceError:未定义数据
您正在定义
var data=[]改为代码>或$scope.data=[]
这意味着$scope.data
不存在,从而导致显示的异常。要解决这个问题,必须将对数据的所有引用
替换为本地作用域,并替换为$scope.data
Angular$scope只使用分配给它的变量,忽略环境变量。在您的例子中,变量数据
正在更新,但是$scope不知道它
此外,函数JobUpdate.update(job).success(函数(job){
未将更改应用于作用域,因为它位于不同的上下文中,在这种情况下,您需要使用$scope.apply,例如:
$scope.$apply(function() {
$scope.data.push(job);
$scope.tableParams.reload();
$scope.ok();
});
您可以在此处查看有关$scope的更多信息:
AngularJS范围文件:
作用域问题:我实际上已经尝试过了,但它给出了我刚刚发布的错误。您还必须在$http请求中替换它。它应该是$Scope.data=result
。试试这个,看看它是否有效:)总计出现相同的错误消息:data.length、//datalength也替换它。您必须替换对环境的所有数据引用,并将其指向$scope.data
,而不是只指向解决了所有未定义问题的data
。但是表仍然没有更新???