0
我遇到的問題是每當調用listaCollection.fetch()之後調用listaCollection.toJSON()時,它將返回一個空數組。如果我在fetch方法的成功回調中執行了console.log(data.toJSON()),我將能夠看到它正確地取回它。如果我對骨幹/牽線木偶比較陌生,那麼任何幫助都會非常感謝。這是代碼。Backbone Marionette 3 app:Collection fetch返回空數組
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 fetch不實際設置屬性]的可能重複(https://stackoverflow.com/questions/9584870/backbone-js-fetch-not-actually-setting-attributes) –
@TJ抱歉。我的錯。我在listaCollection工廠聲明中的parse方法中調用toJSON。但是當我調用data.toJSON()時,我得到一個錯誤,指出JSON不是一個函數(我想象因爲輸出已經是JSON)。 –