【问题标题】:adding related data to backand api将相关数据添加到后端 api
【发布时间】:2016-06-07 07:04:47
【问题描述】:

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

我在“创建后”部分创建了一个操作,但每当我检查“用户输入”变量时,我的额外数据都不存在(我在应用程序中使用测试功能)。考虑以下几点:

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 变量时,我得到的只是一个带有“名称”的 json 对象。不过我希望“玩具”也会在那里。

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

感谢您的帮助

【问题讨论】:

    标签: backand


    【解决方案1】:

    您需要在 POST/PUT url 的查询字符串中添加 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

    【讨论】:

      猜你喜欢
      • 2019-02-01
      • 1970-01-01
      • 1970-01-01
      • 2018-07-16
      • 2014-09-25
      • 1970-01-01
      • 1970-01-01
      • 2010-10-20
      • 1970-01-01
      相关资源
      最近更新 更多