2014-02-08 33 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