将相关数据添加到backand api

时间:2016-06-07 07:04:48

标签: backand

我有一个包含几个不同对象的数据库设置。例如,假设我有一个名为' kids'以及一个名为“玩具”的相关对象。玩具有一个孩子' id字段引用了孩子。我想要的是,当我创建一个孩子时,我也可以发送一个玩具列表并让它自动添加这些玩具。

我在After Create部分创建了一个动作,但每当我检查' userInput'变量我的额外数据不在那里(我在应用程序中使用测试功能)。请考虑以下事项:

return $http ({
  method: 'POST',
  url: Backand.getApiUrl() + '/1/objects/kids/',
  params: {
    name: 'Add Kid',
    parameters: {}
  },
  data: {
    name: 'Jimmy',
    toys: ['truck', 'car', 'crane', 'motorbike'],
  }
});

然后在回调中

function backandCallback(userInput, dbRow, parameters, userProfile){
    console.log(userInput);
    for ( var i = 0; i < userInput.toys.length; i++ ){
        var toy = userInput.toys[i];

        //use $http POST method to create a toy which relates to the user
    }
}

每当我检查userInput变量时,我得到的是一个带有&#39; name&#39;的json对象。在里面。不过我会期待玩具&#39;也在那里。

我确实想知道我是不是采取了错误的方法,我是否应该打电话给api创建一个孩子,然后从中获取数据并进行多次api调用来创建每个玩具?

感谢您的帮助

1 个答案:

答案 0 :(得分:0)

您需要在POST / PUT网址的查询字符串中添加deep = true 请查看以多对多关系使用此示例的示例 http://codepen.io/yariv/pen/eJQPEz

function updatePet(updatedPet) {
    $http({
      method: 'PUT',
      url: Backand.getApiUrl() + baseUrl + petsObjName + '/' + updatedPet.id,
     params: {
        deep: true,
        returnObject: true
     }, // to save the users array
     data: updatedPet
     }).then(function(response) {
     //$scope.readList(petsObjName);
    });
}

详细解答: How to create objects that have relationships when using Backand BaaS? 相关问题 Update a complex object on Backand using $http PUT