我希望res中的数据传递给我的notes变量。但它正在返回一个更大的嵌套对象。为什么会这样? 如果我在控制台中检查cleanArrayOfNotes的值,我得到了我想要的对象,但是一旦将它分配给注释,它就变成了一个更大的对象。我理解这是Promises的本质的一部分,目前我还在努力理解。有帮助吗?
notes_service.js
$date = '$07/23/2015 12:38:23 PM EDT';
navCtrl.js
var notesService = {notesObjectInService: [], newNote: null};
notesService.getAll = function() {
return $http.get('/notes.json').success(function(data){
//console.log(data)
angular.copy(data, notesService.notesObjectInService);
//console.log(notesService)
})
};
答案 0 :(得分:0)
这应该适合你:
notes_service.js
app.factory ('NoteService', function($http) {
return {
getAll: function() {
return $http.get('/notes.json').then(function(response) {
return response.data;
});
}
}
});
navCtrl.js
NotesService.getAll().then(function(res){
$scope.cleanArrayOfNotes = res.data;
});
或者,如果您想要返回结果而不是承诺,您可以:
notes_service.js
app.factory ('NoteService', function($http) {
var notes = [];
var promise = $http.get('/notes.json').then(function(response) {
angular.copy(response.data, notes);
return notes;
});
return {
getAll: function() {
return notes;
},
promise: promise
}
});
navCtrl.js
// get array of notes
scope.cleanArrayOfNotes = NotesService.getAll();
// or use promise
NoteService.promise.then(function(response) {
scope.cleanArrayOfNotes = response.data;
});