2014-02-08 62 views
0

我在使用$ resource發佈新內容時遇到問題...它適用於更新&查詢,但當我嘗試創建新「文章」時,混亂。

基本上我的POST應該發送到「/ articles /」。文章的ID是通過前端表單設置的,但是當我提交POST時,它會發送到「/ articles/ARTICLE_ID」(ARTICLE_ID被替換爲我在表單上設置的任何內容)。

這裏是我的文章的服務:

angular.module('testapp.articles') 
    .factory("Articles", ['$resource', function($resource) { 
    return $resource('articles/:articleId', { 
     articleId: '@articleId' 
    }, { 
     update: { 
      method: 'PUT' 
     } 
    }); 
}]); 

這是我的控制器:

$scope.create = function() { 
    var article = new Articles({ 
    articleId: this.articleId 
    }); 
    article.$save(function(response){ 
    console.log(response); 
    }); 
}; 

任何幫助表示感謝,謝謝!

回答

0

由於這是您在創建Article時指定的內容,因此它會轉到/articles/ARTICLE_ID。您不需要提供article_id作爲參數。

$scope.create = function() { 
    var article = new Articles(); 
    article.articleId = this.articleId 
    article.$save(); 
    ... 
}; 

隨着AngularJS的新版本,articleId無論如何都會被拾起。您的服務可以按如下簡化:

angular.module('testapp.articles') 
    .factory("Articles", ['$resource', function($resource) { 
     return $resource('articles/:articleId', null, 
      { 
       'update': { method: 'PUT' } 
      }); 
}]); 

AngularJS $resource

+0

感謝,這有助於!雖然在我改變它之後,它確實停止發佈到/ articles /:articleId並開始發佈到/ articles /,但是我的帖子也陷入了「掛起」狀態,並且顯示了「注意:臨時頭部」網絡面板。所以我也必須使用找到的方法重置標頭[這裏](http://stackoverflow.com/questions/21630534/node-js-angular-js-caution-provisional-headers-are-shown)。它的所有工作現在! – doostin