簡體   English   中英

無法傳遞服務器返回的對象

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM