Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/video/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Angularjs ngTable reload函数不更新表_Angularjs_Ngtable - Fatal编程技术网

Angularjs ngTable reload函数不更新表

Angularjs ngTable reload函数不更新表,angularjs,ngtable,Angularjs,Ngtable,我尝试了不同的解决方案,人们用以解决同一个问题,但我没有运气。我试图在$http调用后更新表,而不刷新整个页面。我使用“推送”更新非ngtable上的数组,没有问题。任何帮助都会很好,谢谢 我收到了这个错误消息 TypeError:无法读取未定义的属性“push” 当我删除push命令时,它什么也不做 //Job Table var data = []; $http.get("/api/apiJob/").success(function (result) { data

我尝试了不同的解决方案,人们用以解决同一个问题,但我没有运气。我试图在$http调用后更新表,而不刷新整个页面。我使用“推送”更新非ngtable上的数组,没有问题。任何帮助都会很好,谢谢 我收到了这个错误消息

TypeError:无法读取未定义的属性“push”

当我删除push命令时,它什么也不做

  //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
。但是表仍然没有更新???