Angular如何将JSON数组值转换为现有范围?

时间:2014-10-01 12:08:29

标签: javascript json angularjs list ionic-framework

我正在尝试将一些JSON数据推送到列表whiteout的范围(在点击加载下一项btw之后)附加到列表和列表上(使用Ionic框架和infiniteScroll)

有人可以告诉我,我做错了什么以及如何将新的清单项追加到最后?

感谢您的任何建议。

JSON数组示例:

  var fakeListData = [
        { "DATE" : testDateTimeFormated,
            "NUMBER_OF_ALL_CALLS" : 25,
            "RESULT_DONE" : 0,
            "RESULT_NOT_INTERESTED" : 0,
            "RESULT_NO_APP" : 0
        },
        { "DATE" : testDateTimeFormated,
            "NUMBER_OF_ALL_CALLS" : 0,
            "RESULT_DONE" : 0,
            "RESULT_NOT_INTERESTED" : 0,
            "RESULT_NO_APP" : 0
        }];

项目填写:

// Option one (throwing Chrome sendrequest error: TypeError: Converting circular structure to JSON)
    $scope.listData.push(fakeListData);

// Option two (crash browser)    
angular.forEach(fakeListData,function(item) {
  $scope.listData.push(item);
});

2 个答案:

答案 0 :(得分:1)

试试这个

$scope.listData=[];

fakeListData.forEach(function(item){
   $scope.listData.push(item);
})

答案 1 :(得分:0)

我们可以将更多项目推送到现有数组中,但语法应如下所示:

// instead of this
// $scope.listData.push(fakeListData);

// we should use this
[].push.apply($scope.listData, fakeListData);

注意:另外,使用Angular JS也很重要。

如果我们想要清除数组,同时保持对它的引用,我们应该这样做

// instead of this, which creates new array/new reference
// $scope.listData = [];

// we should use this, which will keep the reference, but clear its content
$scope.listData.length = 0

这样我们就可以在$ scope生命周期内重新填充数组,所有角度表都会正确地反映它

同时检查:Short way to replace content of an array