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>
<% }) %>
あなたは '/toJSON()'をどこで呼び出すのか疑問に思っていません。フェッチが完了するのを待つ必要があります。これは重複していることを確かめてください –
[Backbone.jsの実際に属性を設定しないでフェッチする]の可能な複製(https://stackoverflow.com/questions/9584870/backbone-js-fetch-not-actually-setting-attributes) –
@TJごめんなさい。私の悪い。私はlistCollectionファクトリ宣言の中のparseメソッドでJSONを呼び出していました。しかし、私がdata.toJSON()を呼び出すと、toJSONが関数ではないことを示すエラーが出ます(出力が既にJSONであるため想像します)。 –