【问题标题】:How to update links attribute in ember data dynamically?如何动态更新 ember 数据中的链接属性?
【发布时间】:2015-01-15 15:14:22
【问题描述】:

加载异步关系的ember数据载荷通常包含links属性。

{
  "post": {
    "id": 1,
    "title": "Progressive Enhancement is Dead",
    "links": {
      "user": "/people/tomdale"
    },
  },
}

在我的例子中,应用程序必须自己创建链接,因为它在用户选择的日期和时间上运行。关系的链接不是固定的。有什么方法可以在运行时更改模型link 属性,还是我真的需要使用Ember.$.ajax 手动创建整个关系?

【问题讨论】:

  • 我认为您仍然可以传递 id(作为字符串)并依赖您在适配器中定义的内容。试试吧……
  • 感谢您的建议,但我不完全理解您的意思。我应该在哪里传递身份证?您是在谈论像我目前所做的那样创建自己的关系方法吗?
  • 对不起,我的意思是在序列化程序中!我会在一分钟内写一个正确的答案

标签: ember.js ember-data


【解决方案1】:

您可以创建一个序列化程序来自定义links 字段。示例:

App.PostSerializer = DS.RESTSerializer.extend({
    normalizePayload: function(payload) {
      payload.links = {
        "user": getMyLink(payload.links, payload.id)
      };
      return payload;
    }
});

getMyLink 是您的自定义函数。

这能解决您的问题吗?

【讨论】:

  • 它可能会解决这个问题,但这次不行。我已经有一个名为links 的关系,因此更改有效负载会覆盖它。在整个应用程序中重命名它会花费太多时间。此外,当post 嵌入到其他有效负载中时,不会执行PostSerializer。我宁愿认为有一些 ember API 可以插入此类链接。
猜你喜欢
  • 2014-04-06
  • 1970-01-01
  • 2020-02-27
  • 2017-08-20
  • 1970-01-01
  • 2023-04-10
  • 1970-01-01
  • 1970-01-01
  • 2021-08-13
相关资源
最近更新 更多