我想將顏色列動態添加到「解決方案」表。我的代碼基於angularjs和json。我試過如下:angularjs向json數據添加一列
$scope.solutions.push({"color": value2.color});
的value2.color是動態生成foreach循環決定,但我不能添加新列,難道我錯了嗎?這裏是Plunker網址:http://plnkr.co/edit/5gK5cBRdLQ6s8Gyy6ad8?p=preview
謝謝!
我想將顏色列動態添加到「解決方案」表。我的代碼基於angularjs和json。我試過如下:angularjs向json數據添加一列
$scope.solutions.push({"color": value2.color});
的value2.color是動態生成foreach循環決定,但我不能添加新列,難道我錯了嗎?這裏是Plunker網址:http://plnkr.co/edit/5gK5cBRdLQ6s8Gyy6ad8?p=preview
謝謝!
推對象數組相反的,你需要得到該索引的對象,並添加新的特性。
angular.forEach($scope.solutions, function(value1, i) {
angular.forEach($scope.eliminations, function(value2, j) {
if (value1.alien === value2.alien && value1.world === value2.world){
$scope.solutions[i].color = value2.color;
}
});
});
由於我不能調用你的解決方案或消除數據結構,所以很難編輯你的plunker。但隨着拉梅什拉金德倫上面所說的,.push只能用於初始化數組
你需要在你的範圍和
$scope.solutionsArray = [];
,而不是推到$ scope.solutions創建一個數組,你需要推到$ scope.solutionsArray。
您還需要通過添加soultionsArray到您的NG-reapeat
<tr ng-repeat="solution in solutionsArray | filter:SelectedStudent.student_name | filter: {student_name: ''}" >
這是我能做的最好的,沒有看到你的數據結構來更新您的視圖。我希望這有幫助! goood運氣
嗨,亞倫,謝謝你的回覆!我更新了plunker,我相信$ scope.solutions是一個json數組。我想將消除陣列中的顏色填充到解決方案中。 – Lisa 2015-03-19 15:56:07
你可能要更新你的代碼是這樣的:
angular.forEach($scope.solutions, function(value1, key1) {
angular.forEach($scope.eliminations, function(value2, key2){
if(value1.alien === value2.alien && value1.world === value2.world){
console.log(value2.color);
// value1 is a solution object in the solutions array
value1["color"] = value2.color;
}
});
});
正確...但我沒有解決方案陣列中的「顏色」鍵,所以它沒有工作......謝謝 – Lisa 2015-03-19 16:08:38
它是正確的。它顯示任何錯誤? – vamsikrishnamannem 2015-03-19 04:40:02
你能發佈一個鏈接到你的完整的JavaScript源?也許是一個[plunker](http://plnkr.co) – bluetoft 2015-03-19 04:43:41
是你稱它爲value2的原因,它是foreach提供的第二個參數?第二個參數是關鍵,請嘗試value1.color。只是一個想法。 – Aaron 2015-03-19 04:50:54