Ember.js 获取';自我'';下一个';和';以前的';链接(余烬v2)
我正在开发一个Ember js应用程序,我想把每一篇“文章”链接到下一篇和上一篇文章。我想按计划工作 我已经设法以一种体面的方式加载/显示文章(博客)作者,并加载和显示下一篇(相关)文章的“摘要”。那很好 现在,下一个问题应该相当简单:如何加载文章中定义的“链接”?如何将它们添加到我的模型中,或以任何其他方式在我的把手模板中显示它们 让我从我的JSON代表(有效负载)中给出一个练习: 最重要的问题是如何从JSON回复中获取这个“self”链接。这些数据可以直接从“模型”中使用吗 我的模型如下所示:Ember.js 获取';自我'';下一个';和';以前的';链接(余烬v2),ember.js,ember-data,ember-cli,json-api,Ember.js,Ember Data,Ember Cli,Json Api,我正在开发一个Ember js应用程序,我想把每一篇“文章”链接到下一篇和上一篇文章。我想按计划工作 我已经设法以一种体面的方式加载/显示文章(博客)作者,并加载和显示下一篇(相关)文章的“摘要”。那很好 现在,下一个问题应该相当简单:如何加载文章中定义的“链接”?如何将它们添加到我的模型中,或以任何其他方式在我的把手模板中显示它们 让我从我的JSON代表(有效负载)中给出一个练习: 最重要的问题是如何从JSON回复中获取这个“self”链接。这些数据可以直接从“模型”中使用吗 我的模型如下所示
//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')
});
更新
正如@bungee所指出的,有效载荷中有一个错误(与JSONAPI规范相反)。“links”数组应该是“data”的同级,而不是后代。然而,在余烬2.8中,这仍然不会使余烬“吃”它 我假设您使用的是数据适配器?如果是,您是否创建了与显示的数据结构相对应的模型。在我看来,这似乎不是标准的ember rest数据结构,但它取决于您使用的适配器。同样,你可以考虑将以前、自我和下一个设置为数据的直接参数……< P>基于En烬Cube(SalkWuffe)的帮助,我发现目前不可能: 回答Bungee的评论:JSON-API()指定这些“前一个”、“自我”和“下一个”链接应该位于有效负载的根下,但我们不能 我们确实可以通过将它们移动到“数据”下来解决问题→ '负载if中的属性可以接受不遵守JSON-API规范的想法 顺便说一下:引用JSON-API的:
Pagination links MUST appear in the links object that corresponds to a collection. To paginate the primary data, supply pagination links in the top-level links object.
[…]
The following keys MUST be used for pagination links:
first: the first page of data
last: the last page of data
prev: the previous page of data
next: the next page of data
谢谢你的建议。我已将包含模型的文件添加到问题中。我使用标准的JSONAPIAdapter。您说它看起来不像标准的余烬rest数据结构。什么部分没有?links参数看起来不像标准的余烬rest格式。例如,我希望链接是一对多关系,只是一个id数组,如下所示:
链接:['id123987','id12308',…]
。或者像我建议的那样,将链接作为父对象的直接属性:{previousLink:“blogs/4”,selfLink:“blogs/5”,nextLink:“blogs/6”}。但你可能知道一些我不知道的事情。你是对的,我在数据中添加“上一个”、“自我”和“下一个”链接作为直接参数也是错误的。它们的父级“链接”应该是数据的同级。然后,它仍然无法工作,因为Ember不知道如何消化它。查看@Ideogram发布的链接,示例是从有效负载中获取链接参数并将其置于meta.pagination下。因此,正如他所说:目前似乎不支持开箱即用的分页链接
Pagination links MUST appear in the links object that corresponds to a collection. To paginate the primary data, supply pagination links in the top-level links object.
[…]
The following keys MUST be used for pagination links:
first: the first page of data
last: the last page of data
prev: the previous page of data
next: the next page of data