在AngularJS中使用子对象发送JSON数据

时间:2016-02-21 12:49:45

标签: javascript angularjs json

我想发送这样的POST;

{
  "title": "sample string 2",
  "comment": "sample string 5",
  "child": {
    "name": "sample string 2"
  },
    "children": [
        {
            "name": "sample string"
        },
        {
            "name": "sample string"
        }
    ]
}

我目前正在发送此

{
  "title": "sample string 2",
  "comment": "sample string 5"
}

使用这个 (在控制器中)

vm.product = new Product();
vm.product.title = "My title";
vm.product.comment = "my comment";

使用此资源工厂

myApp.factory('Product', function ($resource) {
    return $resource('http://api.com/api/product/:id', { id: '@id' }, {
        update: {
            method: 'PUT'
        }
    });
});

以上作品。我的问题是,我如何更改上面的代码,所以我可以发送子对象,如顶部所示?

我试过

vm.product.child.name = "my new child"

但没有运气。

1 个答案:

答案 0 :(得分:2)

使用您想要的信息创建一个对象,然后分配:

var child = { "name" : "my new child" };
vm.product.child = child;

您无法直接分配到var.product.child.name,因为此时没有要分配的子项 - 一旦您分配了vm.product.child,就可以为其添加字段。事实上,这也可行:

vm.product.child = {};
vm.product.child.name = "my new child";

如果你想要一组孩子:

vm.product.children = [];
var child = {"name":"my child name"};
vm.product.children.push(child);

vm.product.children的值设置为数组后,您可以根据需要推送尽可能多的子项。