如何向javascript对象动态添加值

如何向javascript对象动态添加值,javascript,angularjs,Javascript,Angularjs,我正在尝试学习angular,我有一个示例代码段,如下所示: $scope.contents = [{ name: 'Chris Doe', abbreviation: 'Developer', },{ name: 'Ann Doe', abbreviation: 'Commerce', },{ name: 'Mark Ronson', abbreviation: 'Designer', },{ name: 'Eric Doe',

我正在尝试学习angular,我有一个示例代码段,如下所示:

$scope.contents = [{
    name: 'Chris Doe',
    abbreviation: 'Developer',
},{
    name: 'Ann Doe',
    abbreviation: 'Commerce',
},{
    name: 'Mark Ronson',
    abbreviation: 'Designer',
},{
    name: 'Eric Doe',
    abbreviation: 'Human Resources',
},{
    name: 'John Doe',
    abbreviation: 'Commerce',
},{
    name: 'George Doe',
    abbreviation: 'Media',
},{
    name: 'Ann Ronson',
    abbreviation: 'Commerce',
},{
    name: 'Adam Ronson',
    abbreviation: 'Developer',
},{
    name: 'Hansel Doe',
    abbreviation: 'Social Media',
},{
    name: 'Tony Doe',
    abbreviation: 'CEO',
}];
这很好,但我想从API获取数据,然后将数据加载到
$scope.contents
。我尝试了以下方法:

$http(req).success(function(res) {
    console.log(res);
    for (var i = 0; i < res.length; i++) {
        console.log(res[i]);
        //add data into scope contents here .add(res[i])
    }
}).error(function (err) { console.log(err) });
$http(req).成功(函数(res){
控制台日志(res);
对于(变量i=0;i
这是可行的,我能够循环通过从API返回的数据对象,但是我无法找出将返回的数据添加到
$scope.contents
中的语法正确方法是什么?有更好的方法吗?如将
$scope.contents
设置为类并将数据添加为新实例?

您可以使用:

显然,您首先要确保
$scope.contents
已经是一个数组:

if (! Array.isArray($scope.contents)) {
  $scope.contents = [];
}
$scope.contents = $scope.contents.concat(res);

$scope.contents看起来像一个数组,所以

$scope.contents.push(res[i]);

$scope.contents
是一个数组,因此可以将新对象推送到该数组中

$http(req).success(function(res) {
    console.log(res);
    for (var i = 0; i < res.length; i++) {
        console.log(res[i]);
        $scope.contents.push(res[i]);
    }
}).error(function (err) { console.log(err) });

您能否共享响应数据的格式。
console.log(res[I])的示例输出会很好。@JRulle
Object{id:2,name:“Germany”,缩写:“DE”}
根据这种格式,您可以使用下面@andrewR的答案来实现您想要的。哦,这真的很容易。
$http(req).success(function(res) {
    console.log(res);
    for (var i = 0; i < res.length; i++) {
        console.log(res[i]);
        $scope.contents.push(res[i]);
    }
}).error(function (err) { console.log(err) });
$scope.contents.push({
    name: res[i].name,
    abbreviation: res[i].abbreviation,
}); // example -- change to match your data