2016-06-28 69 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如果你能駱駝的情況下,但不是必需的。