[英]Can't pass around returned object from server
我正在挑選一個由同行發起的項目,並且在API調用方面遇到麻煩。 這是我的角度控制器:
angular.module('oowli').factory('Note', ['$http', function($http) {
var Note = function(data) {
angular.extend(this, data);
};
Note.prototype.save = function() {
var note = this;
return $http.post('/notes', this).then(function(response) {
note = response.data;
}, function(error) {
return error;
});
};
return Note;
}]);
並在此函數中執行調用:
var saveNote = function(Note, scope){
return function(span, phrase){
var noteObj = new Note({
user: scope.global.user._id,
content: span.innerText
});
noteObj.save().then(function(){
console.log(noteObj);
});
};
};
問題是,保存便箋后,noteObj是原始文件,而不是從服務器返回的文件(帶有_id字段)。 在Note.prototype.save
上調試, response.data
帶有_id;
我需要知道在saveNote函數中如何訪問返回的Note對象。
您正在將新對象分配給Note.prototype.save函數中的局部變量“ note”,但隨后不對其執行任何操作。
最快的解決方案是將返回的對象的屬性復制到您的筆記中,而不是分配給它,因此,而不是:
note = response.data;
這可能起作用:
angular.copy(response.data, note)
總的來說,盡管我不喜歡讓Note類負責保存自身的方法。 我將創建一個保存對象的注釋服務。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.