use*_*487 8 javascript angularjs
我正在尝试学习角度,我有一个示例代码片段如下:
$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',
}];
Run Code Online (Sandbox Code Playgroud)
哪个工作正常,但我想从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) });
Run Code Online (Sandbox Code Playgroud)
这工作,我能够遍历从我的API返回的数据的对象,但我无法弄清楚添加返回的数据的语法是$scope.contents
什么是正确的方法来做到这一点?有一个更好的方法吗?就像创建$scope.contents
一个类并将数据添加为新实例一样?
你可以使用Array#concat
:
$scope.contents = $scope.contents.concat(res);
Run Code Online (Sandbox Code Playgroud)
显然你首先要确保它$scope.contents
已经是一个数组:
if (! Array.isArray($scope.contents)) {
$scope.contents = [];
}
$scope.contents = $scope.contents.concat(res);
Run Code Online (Sandbox Code Playgroud)