在模板上访问元数据attr

时间:2016-12-19 20:40:41

标签: ember.js ember-data ember-cli-mirage

我有一个带有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 }}

然后什么都没有呈现。我错过了什么吗?

2 个答案:

答案 0 :(得分:1)

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

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

Reference

答案 1 :(得分:0)

奇怪的是,有时候我遇到了同样的问题,有时候这对我很有用:

model.content.meta.compass_size