0

我有一个带有 ember-cli-mirage 和一些元数据的模拟 api 端点。我确实覆盖了模型序列化程序以添加这样的元数据:

import { JSONAPISerializer } from 'ember-cli-mirage';

export default JSONAPISerializer.extend({
    serialize(object, request) {
        let json = JSONAPISerializer.prototype.serialize.apply(this, arguments);

        json.meta = {
            compass_size: 1,
            arrow_size: 2,
            total: 3
        }

        return json;
    }
});

api 调用正确返回该元数据:

Object
    data: Array[10]
    meta: Object
     arrow_size: 2
     compass_size: 1
     total: 3
     ...

鉴于我有这个路由处理程序:

import Ember from 'ember';

export default Ember.Route.extend({
  model() {
    return this.get('store').findAll('events');
  }
});

当我尝试在我的模板上打印该数据时

{{ model.meta.compass_size }}

然后什么都没有渲染。我错过了什么吗?

4

2 回答 2

1

您需要覆盖normalizeResponse钩子来解释服务器(海市蜃楼)响应。

要更改发送到后端存储的数据格式,您可以使用该serialize()挂钩。因此,在您的情况下,您的后端(海市蜃楼)以 JSON API 以外的格式提供数据,您可以使用该normalizeResponse()钩子。

参考

于 2016-12-27T01:42:58.110 回答
0

奇怪的事情,有时我遇到了同样的问题,有时这对我有用:

model.content.meta.compass_size

于 2016-12-26T17:08:29.913 回答