2016-06-28 71 views
-1

在借助于每个循环读取数据之后。数据正在成功填充。 我正在尝试推送名为test Data的数组中的对象,但它失败。推不工作。 以下是我的代码。推不工作

$scope.testData=[];  
data.content.forEach(function(column) { 
    var objects = { 
     ip: "", 
     user: "", 
     date_created:"" 
    }; 
    objects.ip = column.ip; 
    objects.user = column.username; 
    var d = new Date(column.created); 
    var a = d.toUTCString(); 
    objects.date_created = a; 
    testData.push(objects); 
}); 
$scope.safeApply(); 
}, function(error){ 
    console.log(error); 
}); 
+4

推动力在哪里? –

回答

2

你应该把它分配给$范围,试试这个

$scope.testData.push() 
1

既然你分配你的阵列到$scope对象,试图用testData直接将无法正常工作互动。

您需要更改线路

testData.push(objects);

$scope.testData.push(objects);

,并且应该为你做的伎俩。

1

为什么不使用Array#map呢。

$scope.testData = data.content.map(function(column) { 
    var d = new Date(column.created); 
    return { 
     ip: column.ip, 
     user: column.username, 
     date_created: d.toUTCString() 
    }; 
}); 
1

我创建了一个“测试”与您的代码和它的作品:

$scope = {}; 
$scope.data = {}; 
$scope.data.content = [{ 
    column: 1, 
    ip: '192.168.123.544', 
    created: new Date(), 
    username: 'username' 
}]; 
$scope.testData=[]; 
$scope.data.content.forEach(function(column) { 
    var objects = { 
     ip: "", 
     user: "", 
     date_created:"" 
    }; 
    objects.ip=column.ip; 
    objects.user=column.username; 
    var d = new Date(column.created); 
    var a =d.toUTCString(); 
    objects.date_created=a; 
    $scope.testData.push(objects); 
}); 
console.log($scope.testData); 

如果你想帮助,请贴上错误的按摩;

0

如果您在第1行看到您声明了数组$ scope.testData = [];

,所以你需要使用$ scope.testData.push(对象)

+0

耶谢谢萨米,顺便说一句,它的工作 –

1

唯一的问题是,你必须分配给$scope.testData一个数组,但你尝试推到testData。这是无效的,你必须保持你的变量一致。当我们处理它时,让我们清理一下你的代码。

$scope.testData=[];  
data.content.forEach(function(column) { 
    $scope.testData.push({ 
    ip: column.ip, 
    user: column.user, 
    date_created: (new Date(column.created)).toUTCString() 
    }) 
}); 

我也会考虑改变date_created如果你能骆驼的情况下,但不是必需的。