我有一个包含几个不同对象的数据库设置。例如,假设我有一个名为' 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调用来创建每个玩具?
感谢您的帮助
答案 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