推送不起作用

时间:2016-06-28 11:41:28

标签: javascript

在每个循环的帮助下读取数据。数据已成功填充。 我试图在名为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);
});

6 个答案:

答案 0 :(得分:2)

你应该将它分配给$ scope,试试这个

$scope.testData.push()

答案 1 :(得分:1)

由于您已将数组分配给$scope对象,因此尝试与testData直接互动无效。

您需要更改行

testData.push(objects);

$scope.testData.push(objects);

这应该可以帮到你。

答案 2 :(得分:1)

为什么不使用documentation

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

答案 3 :(得分: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);

如果您需要帮助,请粘贴错误按摩;

答案 4 :(得分: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更改为骆驼案,但不是必需的。

答案 5 :(得分:0)

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

所以你需要使用$ scope.testData.push(objects)