如何发送附加信息以及余烬删除模型请求



我有一个想要删除的余烬模型。因此,根据文档,我可以执行以下任何操作:

store.findRecord('post', 1, { backgroundReload: false }).then(function(post) {
        post.deleteRecord();
        post.get('isDeleted'); // => true
        post.save(); // => DELETE to /posts/1
    });

store.findRecord('post', 2, { backgroundReload: false }).then(function(post) 
{
  post.destroyRecord(); // => DELETE to /posts/2
});

但是,假设为了删除帖子模型,我需要附加信息。例如,我还想知道"idAplication"(应用程序发送删除请求)和"userEmail"(用户尝试删除帖子)。

问题是:默认情况下,余烬存储只会向我发送帖子 ID: myapi.com/posts/1

我该怎么做?如何使用余烬模型发送其他内容与正文删除请求?

销毁记录时,您可以将一些数据作为查询字符串发送,例如 DELETE posts/2?applicationId=1234

为此,您可以覆盖 urlForDeleteRecord 在模型适配器中的构建方式(或覆盖主应用程序适配器以添加所有模型的功能)。

应用程序\

适配器\应用程序.js

import ActiveModelAdapter from 'active-model-adapter';
// other imports ...
export default ActiveModelAdapter.extend({
  // other configurations ...
  urlForDeleteRecord(id, modelName, { adapterOptions: { data } }) {
    let queryString = data
      ? '?' + Object.keys(data).map(prop => `${prop}=${data[prop]}`).join('&')
      : '';
    return this._super(...arguments) + queryString;
  }
});

稍后在您的代码中,您可以调用 destroyRecord 传递一些数据,例如

store.findRecord('post', 2)
  .then((post) => { 
    post.destroyRecord({ adapterOptions: {
      data: {
        prop1: "value1",
        prop2: "value2"
      }
    }}); // => DELETE to /posts/2?prop1=value1&prop2=value2
  }

最新更新