gpt4 book ai didi

angularjs - 为什么我要传递 {'things[]' : [ 'apple' , 'pillow' ]} 表单数据?

转载 作者:太空宇宙 更新时间:2023-11-04 02:20:25 25 4
gpt4 key购买 nike

我在 node.js/mongoose 中有非常简单的架构,如下所示:

var thingSchema = mongoose.Schema({
thing_name : String,
ting_logo : String,
things : [String]
});

这是我在 angular.js Controller 中的添加方法:

    $scope.submit_thing  = function() {
var data = $.param({ 'thing_name': $scope.newthing, 'thing_logo': $scope.newlogo, 'things': $scope.selected.things });
$http.post("http://10.0.0.2:8080/thing/add",
data,
{headers: {'Content-Type': 'application/x-www-form-urlencoded'}}).then(function(response) {
console.log(response);
console.log(response.data);
});
...

...但是当我调用 $scope.submit_thing 我的 node.js 应用程序输出这个...

{ thing_name: 'eeeee',
thing_logo: 'eeeee',
'things[]': [ 'Fishing', 'Mountain Biking' ] }

...然后我可以在数据库中找到这条记录,但 things 数组为空。 [] 到底来自哪里?我认为这弄乱了我的表单数据。我的表单数据不应该是吗?

{ thing_name: 'eeeee',
thing_logo: 'eeeee',
'things': [ 'Fishing', 'Mountain Biking' ] }

更新:我已经更改了线路...

        var data = $.param({ 'thing_name': $scope.newthing, 'thing_logo': $scope.newlogo, 'things': $scope.selected.things });

...到...

        var data = { 'thing_name': $scope.newthing, 'thing_logo': $scope.newlogo, 'things': $scope.selected.things };

...但这似乎让事情变得更糟。现在我从我的node.js控制台得到这个输出......

{ '{"thing_name":"thing","thing_logo":"thing","things":["Running","Fishing"]}': '' }

** 更新 2**:

好吧,我现在在我的 thingCtrl.js 文件中执行此操作:

    $scope.submit_thing  = function() {
var data = $.param({ "thing_name": $scope.newthing, "thing_logo": $scope.newlogo, "things": JSON.stringify($scope.selected.things)});

...所以知道完整的记录正在进入我的 mongodb,但 mongo 记录看起来像这样:

> db.things.find({})
{ "_id" : ObjectId("5646bb2e4235cd620080a969"), "thing_name" : "test001", "thing_logo" : "testlogo", "things" : [ "[\"Skiing\",\"Mountain Biking\"]" ], "__v" : 0 }
>

数组 things 中的字符串有引号转义有关系吗?这是怎么回事?

最佳答案

好吧,这就是我必须做的......

  $scope.submit_thing  = function() {
var data = Object({ 'thing_name': $scope.newthing, 'thing_logo': $scope.newlogo, 'things': $scope.selected.things});
$http.post("http://10.0.0.2:8080/vendor/add",
JSON.stringify(data)
//{headers: {'Content-Type': 'application/x-www-form-urlencoded'}}
).then(function(response) {
console.log(response);
console.log(response.data);
});

我认为所做的事情是注释掉标题行。

关于angularjs - 为什么我要传递 {'things[]' : [ 'apple' , 'pillow' ]} 表单数据?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33704820/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com