2014-02-08 22 views
0

我正在拾取由對等方啓動的項目,並且遇到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對象。

回答

1

您正在將新對象分配給Note.prototype.save函數中的局部變量'note',但不對它做任何事情。

最快的解決辦法是將返回對象的屬性複製到你的筆記,而不是分配給它,這樣反而:

note = response.data; 

這可能會實現:

angular.copy(response.data, note) 

雖然在一般我不喜歡讓Note類負責保存自己的方法。我會創建一個保存對象的便箋服務。

+0

就是這樣。非常感謝 –