angularjs - 在 ngResource 发布 URL 中使用参数

标签 angularjs rest fosrestbundle ngresource

我正在使用 FosRestBundle API,并且我必须在 url post 资源中传递参数才能执行操作。

FosrestBundle 中的帖子资源是这样的:

api/readQuestion/{contain_id}/{user_id}/{type_id}/Questions

因此,要在我的 angularjs 应用程序中使用该资源发送数据。我创建了一个服务并这样做:

angular.module("QuestionRest", ['ngResource'])

.factory("question",  function ( $resource) {


    var apiData = $resource(
        "/api", {},
        {
            "postQuestion" : { method: "POST", url: "/api/readQuestion/:containid/:userid/:typeid/Questions"}
        });

    return {

        postQuestion: function(newQuestion, contain_id, user_id, type_id) {
            apiData.postQuestion(newQuestion, {containid: contain_id, userid: user_id, typeid: type_id}, function() {
                console.log("Success !");
            }, function(error) {
                console.log("Error " + error.status + " when sending request : " + error.data);
            });

        }

    }
});

但是根本不起作用。当我像这样在应用程序 Controller 中调用 postQuestion 时:

question.postQuestion(newQuestion, 1 ,1 ,1 ), 

我收到此错误:

angular.js:12410 POST http://localhost:8000/api/readQuestion/Questions?description=%3Cp%3Efdfdf%3C%2Fp%3E&title=fdf%3F&line=1000&page=1000 404 (Not Found)

地点:

{
"title": "fdf?",
"description": "Cp...3Efdfdf...",
"line": "1000",
"page": "1000"
 }

是我的 post 请求发送的 newQuestion JSON 对象。

你知道我的意思。

在 Angular 应用发布 URL 中传递参数的最佳方式是什么?

最佳答案

参数和数据颠倒:

The action methods on the class object or instance object can be invoked with the following parameters:

  • non-GET "class" actions: Resource.action([parameters], postData, [success], [error])
    postQuestion: function(newQuestion, contain_id, user_id, type_id) {
        //apiData.postQuestion(newQuestion, {containid: contain_id, userid: user_id, typeid: type_id}, function() {

        var params = {containid: contain_id, userid: user_id, typeid: type_id};
        apiData.postQuestion( params, newQuestion,  function() {
            console.log("Success !");
        }, function(error) {
            console.log("Error " + error.status + " when sending request : " + error.data);
        });

    }

关于angularjs - 在 ngResource 发布 URL 中使用参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41413986/

相关文章:

javascript - 尝试测试回调中设置的变量

javascript - Angular 嵌套 Controller 访问 ng-repeat 数据

java - Spring API REST 和 Cors 以及 AngularJS

rest - symfony 形式 + fos 休息

rest - 多部分/表单数据和FormType验证

symfony - FOSRestBundle 路由

javascript - AngularJS ng-重复 : Dynamically render/bind canvas inside loop

javascript - Angular : Bootstrap typeahead with multiselect

javascript - 基于Json的架构怎么称呼?

jquery - 如何使用 jQuery 对本地 Web 服务进行 RESTful 调用