0

バックエンドサーバーからいくつかの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')
});

しかし、これは「配列」がサポートされていないというエラーを私に与えます。このデータの解析をどのように行う必要がありますか?また、ハンドルバーテンプレートを介してDOMの値imagesと DOM内の値をどのように出力する必要がありますか?videosベストプラクティスの答えを探しています。

4

1 に答える 1

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>
于 2013-02-18T10:56:58.850 に答える