0

我有一个显示文章列表的车把模板。每篇文章都有两个通过 belongsTo 关系关联的提示。使用此 JSON 从服务器正确返回信息:

{"article":[{"id":7,"prompt_one":{"content":"Thing1"},"prompt_two":{"content":"Thing2"}]}

现在我可以渲染文章中的其他数据了,但是我无法从其中一个提示中获取数据以在车把模板中渲染。我认为这很简单:

<p>{{prompt_one.content}}</p>

但是什么都没有显示,也没有显示错误。渲染关联模型内容的正确方法是什么?

4

1 回答 1

1

你可以做两件事:

  1. 嵌入记录。如果提示对象嵌入到文章的 JSON 中,您需要将它们定义为嵌入(ember-data 不支持嵌入对象)。

    DS.RESTAdapter.map('App.Article',{
        prompt:{
            embedded:'always'
        }
    })
    
    App.Article = DS.Model.extend({
        prompt: DS.belongsTo(App.Prompt,{embedded:'always'}),
    });
    
  2. 自定义对象属性。如果您只想嵌入对象而不使用belongsTo关系,您可以注册自己的DS.attr('object')类型。

    DS.RESTAdapter.registerTransform('object', {
      deserialize: function(serialized) {
        return Ember.isEmpty(serialized) ? {} : JSON.parse(serialized);
      },
      serialize: function(deserialized) {
        return Ember.isEmpty(deserialized) ? '' : JSON.stringify(deserialized);
      }
    });
    
于 2013-07-21T18:39:17.913 回答