2017-05-23 5 views
0

問題は、listaCollection.fetch()を呼び出した後にlistaCollection.toJSON()を呼び出すたびに空の配列を返すことです。しかし、fetchメソッドのsuccessコールバックでconsole.log(data.toJSON())を実行すると、正しくフェッチしていることがわかります。私がバックボーン/マリネットには新しければ、どんな助けでも大歓迎です。ここにコードがあります。バックボーンMarionette 3 app:コレクションフェッチは空の配列を返します

import Bb from 'backbone'; 
import Mn from 'backbone.marionette'; 
import template from '../templates/ListasTemplate.jst'; 

const ListaCollection = Bb.Collection.extend({ 
    url: "http://localhost:3000/api/v1/lista/all", 
    parse(data) { 
    return data.lista; 
    } 
}); 

const listaCollection = new ListaCollection(); 

listaCollection.on("change", function() { 
    reset(); 
}); 

listaCollection.fetch({ 
    success(data) { 
    console.log(data.toJSON()); 
    } 
}); 

const ListasView = Mn.View.extend({ 
    collection: listaCollection, 
    className: "mdl-grid", 
    regions: { 
    listasContainer: "#listas-container" 
    }, 
    template: template 
}); 

export default ListasView; 

そして、これが私のテンプレートです:

<% _.each(items, function(item) { %> 
    <div class="mdl-cell mdl-cell--6-col"> 
    <div class="demo-card-wide mdl-card mdl-shadow--2dp"> 
     <div class="mdl-card__title"> 
     <h2 class="mdl-card__title-text"><%= item.titulo %></h2> 
     </div> 
     <div class="mdl-card__supporting-text"> 
     <%= item.descricao %> 
     </div> 
     <div class="mdl-card__actions mdl-card--border"> 
     <button class="mdl-button mdl-button--icon mdl-js-button mdl-js-ripple-effect show-modal"> 
      <i class="material-icons">arrow_forward</i> 
     </button> 
     <button class="mdl-button mdl-button--icon mdl-js-button mdl-js-ripple-effect"> 
      <i class="material-icons">mode_edit</i> 
     </button> 
     <button class="mdl-button mdl-button--icon mdl-js-button mdl-js-ripple-effect"> 
      <i class="material-icons">clear</i> 
     </button> 
     </div> 
    </div> 
    </div> 
<% }) %> 
+0

あなたは '/toJSON()'をどこで呼び出すのか疑問に思っていません。フェッチが完了するのを待つ必要があります。これは重複していることを確かめてください –

+0

[Backbone.jsの実際に属性を設定しないでフェッチする]の可能な複製(https://stackoverflow.com/questions/9584870/backbone-js-fetch-not-actually-setting-attributes) –

+0

@TJごめんなさい。私の悪い。私はlistCollectionファクトリ宣言の中のparseメソッドでJSONを呼び出していました。しかし、私がdata.toJSON()を呼び出すと、toJSONが関数ではないことを示すエラーが出ます(出力が既にJSONであるため想像します)。 –

答えて

0

私はまあ、parseメソッドの戻り値が設定されているlistaCollectionfactory宣言

内部の解析方法ではtoJSONを呼んでいましたコレクションのデータとして。したがって、をparseの内部に呼び出すと、データはまだ設定されていないため、空の配列が返されます。

関連する問題