在Ember模型中访问嵌套JSON

时间:2018-03-28 12:50:09

标签: ember.js ember-data

我试图访问嵌套在我的模型中的特定ID以创建belongsTo关联。我在模板中获取所需内容毫无困难,但在模型中需要image_id。下面是我的JSON和当前模型。

{
  content: {
      title: 'Title',
      header: 'Header',
      image_id: 1
  }
  slug: 'slug',
  title: 'Welcome'
}

这是我目前的模特......

import DS from 'ember-data';

const { attr } = DS;

export default DS.Model.extend({
  content: attr(),
  title: attr('string'),
});

希望这有意义!!谢谢!

1 个答案:

答案 0 :(得分:0)

我有类似的用例(主要是一个非常可变的设置参数,在db中存储为json)并通过自定义转换解决它:

// myapp/transforms/json.js
import DS from 'ember-data';

// Converts stringified json coming from database (usually in table-field 'settings') to a POJO
export default DS.Transform.extend({
    deserialize: function(serialized) {
        return JSON.parse(serialized);
    },
    serialize: function(deserialized) {
        return JSON.stringify(deserialized);
    }
});

//myapp/models/myModel.js
import DS from 'ember-data';

export default DS.Model.extend({
    title: DS.attr('string'),
    content: DS.attr('json')
});

然后在你的模板中你应该能够做到

{{model.content.image_id}}

或在控制器中

let image_id = this.get('model.content.image_id');

或在模型中

this.get('content.image_id');