AngularJS:使用$ resource发布一些新内容

时间:2014-02-08 22:53:54

标签: angularjs post resources

我无法使用$ 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);
  });
};

感谢任何帮助,谢谢!

1 个答案:

答案 0 :(得分:0)

它会转到/articles/ARTICLE_ID,因为这是您在创建Article时指定的内容。您无需提供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