如何在emberjs中解析模型中的嵌套数组

时间:2013-02-17 18:09:03

标签: ember.js

我无法弄清楚如何从后端服务器解析一些json数据。 首先,这是它返回的数据:

{
  "newsitem": {
    "id": "1",
    "title": "Some title",
    "images": [
        "IMG_0147.JPG",
        "desert1.jpg"
    ],
    "videos": [
        "AEOpX8tmiUI",
        "kxopViU98Xo"
    ]
  }
}

我正在尝试在我的模型中解析它:

App.Newsitem = DS.Model.extend({
    title: DS.attr('string'),

    images: DS.attr('array'),
    videos: DS.attr('array')
});

但这给了我一个错误,即'array'不受支持。我应该如何解析这些数据?如何通过把手模板打印出DOM中imagesvideos的值?我正在寻找最佳实践答案。

1 个答案:

答案 0 :(得分:1)

nerdyworm频道上#emberjs的大量信用答案:您必须为新数据类型创建自己的序列化/反序列化方法,如下所示:

DS.JSONTransforms.array = {
  serialize: function(jsonData) {
    return Ember.typeOf(jsonData) == 'array' ? jsonData : [];
  },
  deserialize: function(externalData) {
    return Ember.typeOf(externalData) == 'array' ? externalData : [];
  }
}

然后在您的车把模板中,您可以:

<script type="text/x-handlebars" data-template-name="newsitem">
    <div class="detail">
        {{#each image in images}}
            {{image}}<br/>
        {{/each}}
    </div>
</script>