在 ngResource post URL 中使用参数
Using params in ngResource post URL
我正在使用 FosRestBundle API,我必须在 url post 资源中传递参数以执行操作。
FosrestBundle 中的 post 资源是这样的:
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);
});
}
}
});
但它根本不起作用。当我像这样在我的应用程序控制器中调用 post问题时:
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请求发送的newQuestionJSON对象。
你知道我的意思。
在 angular 应用 post 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);
});
}
我正在使用 FosRestBundle API,我必须在 url post 资源中传递参数以执行操作。
FosrestBundle 中的 post 资源是这样的:
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);
});
}
}
});
但它根本不起作用。当我像这样在我的应用程序控制器中调用 post问题时:
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请求发送的newQuestionJSON对象。
你知道我的意思。
在 angular 应用 post 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);
});
}