2015-01-15 73 views
0

加载异步关系余烬数据有效载荷通常包含links属性。如何动态更新ember数据中的链接属性?

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

在我的情况的应用程序必须创建链接本身由于它由用户选择的日期和时间操作的事实。链接到关系是不固定的。有没有办法在运行时更改模型link属性,还是我真的需要使用Ember.$.ajax手动创建整个关系?

+0

我认为你仍然可以传递id(作为字符串)并依赖于你在适配器中定义的内容。试试也许...... – andrusieczko 2015-01-15 15:37:31

+0

感谢您的建议,但我不完全明白你的意思。我应该在哪里通过ID?你在谈论如何创建自己的关系方法? – 2015-01-15 15:42:12

+0

对不起,我的意思是在序列化程序!我会在一分钟内写出正确的答案 – andrusieczko 2015-01-15 15:45:22

回答

1

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

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

其中getMyLink是您的自定义功能。

这是否解决您的问题?

+0

它可能会解决这个问题,但不是这次。我已经有一种叫做“链接”的关系,所以改变有效载荷调用覆盖它。重命名它适用于整个应用程序将花费太多时间。而且,'post'嵌入到其他有效负载中时'PostSerializer'不会执行。我宁愿认为有一些ember API来插入这样的链接。 – 2015-01-15 16:12:50