我正在编辑保存在AngularJs范围内的对象中的内容。提交后,我执行以下功能:
$scope.saveQuestion = function(){
var request = $http({
method: "post",
url: "/manager/evaluations/evaluations/manage_questions/537c6179-8ed8-49b4-ac6b-25715f550349",
data: {EvaluationQuestion: $scope.newquestion}
});
}
$ scope.newquestion具有以下对象:
[relevance: 3, evaluation_topic_id: 1, type: "text", action: "add", name: "asdfasdfsadfas"]
但是ajax请求只显示了一个Request Payload:
请求Payloadview来源
{EvaluationQuestion:[]}
EvaluationQuestion: []
任何人都可以猜出发送数据为何为空?
答案 0 :(得分:2)
您的$scope.newquestion
似乎是数组,而不是对象。
JSON不支持带有命名键的Array数据类型。例如:
var foo = [];
foo['bar'] = 'One';
foo.baz = 'Two';
JSON.stringify(foo); // return "[]"
如果$scope.newquestion
不需要是数组,只需使用对象。
而不是
$scope.newquestion = [];
将其更改为:
$scope.newquestion = {};
答案 1 :(得分:1)
我认为你在$ scope.newquestion中使用了错误的JSON语法。
在这里,您要定义一个应该包含在{}中的对象,但是您将它包含在[]中,它代表一个数组。我js数组你不能[name1: value1, name2: value2]
。
尝试用固定支架替换方括号,如下所示:
{relevance: 3, evaluation_topic_id: 1, type: "text", action: "add", name: "asdfasdfsadfas"}
希望有所帮助。
答案 2 :(得分:0)
试试这个:
data:{EvaluationQuestion:angular.toJson($ scope.newquestion)}