我正在开发一个Ember-js应用程序,我想将每篇文章链接到下一篇和上一篇文章。我想根据JSON API工作。get'self','next'和'previous'links(ember v2)
我已经设法加载/显示文章的(博客)作者体面和加载和显示下一篇(相关)文章的'传情'。这工作正常。
现在,下一件应该是相当简单的:如何加载我的文章中定义的'链接'?如何将它们添加到我的模型中,或者以我的Handlebars模板中的其他方式显示它们?
让我举一个exerpt从我的JSON-repsonse(有效载荷):
{
"data": {
"type": "blogs",
"id": "5",
"links": {
"previous": "blogs/4",
"self": "blogs/5",
"next": "blogs/6"
},
"attributes": {…}, // title, subtitle, bodytext, etc.
"relationships": {
…
},
最重要的问题是如何获得从JSON回复这个“自我”链接。这些数据可以直接从'模型'中使用吗?
我的模型如下所示:
//models/blog.js
import DS from 'ember-data';
export default DS.Model.extend({
nid : DS.attr('string'),
title : DS.attr('string'),
subtitle : DS.attr('string'),
intro : DS.attr('string'),
…
author : DS.belongsTo('person'),
next : DS.attr('next'),
previous : DS.belongsTo('person')
});
UPDATE 作为@bungee指出,有一个错误(对JSONAPI规格)的有效载荷。 '链接'数组应该是'数据'的兄弟,而不是后代。然而,在Ember 2.8中,这仍然不会让Ember“吃”它。 :)
感谢您的建议。我已将包含模型的文件添加到问题中。 我使用标准的JSONAPIAdapter。 你说它看起来不像标准的余烬余数据结构。什么部分没有? – Ideogram
links参数看起来不像标准的ember rest格式。我期望的链接是,例如一对多的关系,并简单地是一个id数组,如下所示:'''链接:['id123987','id12308',...]''。或者像我建议的那样,将链接作为父代的直接属性:{previousLink:“blogs/4”,selfLink:“blogs/5”,nextLink:“blogs/6”}。但可以是你知道我没有的东西。 – bungee
你说得对,因为我在将'previous','self'和'next'链接添加为数据的直接参数时也是错误的。他们的父母'链接'应该是数据的兄弟姐妹。然后,它仍然不起作用,因为Ember不知道如何消化它。 – Ideogram