この場合、誰かが間違っているものを見つけるのを助けることができるのだろうかと思います。私は "キャッチされないのReferenceErrorを:テキストが定義されていません" を取得ラインで6 app.js:Marionette.js - Uncaught ReferenceError:テキストが定義されていません
((__t=(text))==null?'':_.escape(__t))+
driver.js:
var Marionette = require('backbone.marionette');
var TodoView = require('./views/layout');
var initialData = {
items: [
{assignee: 'Scott', text: 'Write a book about Marionette'},
{assignee: 'Andrew', text: 'Do some coding'}
]
};
var App = new Marionette.Application({
onStart: function(options) {
var todo = new TodoView({
collection: new Backbone.Collection(options.initialData.items),
model: new ToDoModel()
});
todo.render();
todo.triggerMethod('show');
}
});
App.start({initialData: initialData});
ビュー/ layout.js
var Backbone = require('backbone');
var Marionette = require('backbone.marionette');
var ToDoModel = require('../models/todo');
var FormView = require('./form');
var ListView = require('./list');
var Layout = Marionette.View.extend({
el: '#app-hook',
template: require('../templates/layout.html'),
regions: {
form: '.form',
list: '.list'
},
collectionEvents: {
add: 'itemAdded'
},
onShow: function() {
var formView = new FormView({model: this.model});
var listView = new ListView({collection: this.collection});
this.showChildView('form', formView);
this.showChildView('list', listView);
},
onChildviewAddTodoItem: function(child) {
this.model.set({
assignee: child.ui.assignee.val(),
text: child.ui.text.val()
}, {validate: true});
var items = this.model.pick('assignee', 'text');
this.collection.add(items);
},
itemAdded: function() {
this.model.set({
assignee: '',
text: ''
});
}
});
module.exports = Layout;
を
todoitem.html
<%- item.text %> — <%- item.assignee %>
テキストが定義されていない理由は何ですか?
アンダースコアのテンプレートエラーのようです。おそらく、あなたは '<%= text %>'のようなものをHTMLテンプレートのどこかに使っており、正しいデータをコンパイルされたテンプレートに渡していないことを意味します。 –
質問が更新されました。テンプレートitemlist.htmlに出力が追加されました。 – dev85