我有一个骨干视图,只有一个单击事件来更新集合。在我的控制台中,我可以看到正在更新的对象以及返回的模型数量正在发生变化,但是在第一次触发事件后视图保持静态,并且任何第二次触发它的尝试都会给出错误{{1} }。作为参考,我在页面底部加载了脚本,模板(使用下划线)位于其上方。
这是我的观点
TypeError: text is undefined
答案 0 :(得分:0)
下面是一个正常工作的代码,我刚刚添加了对最终获取数据的初始调用
app.myView.fetchData();
取消注释.on('sync', ...
initialize
this.collection.on('sync', this.render, this);
#submit
我使用jsbin进行了测试,因此您可以看到对您来说有什么不对。因此,我看到获取数据的初始呈现并单击app.MyView = Backbone.View.extend({
el: 'body',
events: {
'click #submit': 'fetchData'
},
initialize: function() {
this.collection = new app.MyCollection();
// Here is a binding to each fetch data and on success render view
this.collection.on('sync', this.render, this);
},
render: function() {
console.log('rendering');
var schedule = $('#schedule');
var template = _.template($('#times-template').html());
schedule.html(template({ collection: this.collection.toJSON() }));
},
fetchData: function() {
that = this;
var stationQuery = {};
stationQuery.station_start = $('#start').val();
stationQuery.station_end = $('#end').val();
var query = stationQuery;
this.collection.fetch({
data: query,
success: function(collection, response) {
console.log('fetching data');
},
error: function(collection, response) {
console.log('error on fetch', response);
}
});
},
});
app.myView = new app.MyView;
// Here is first call to fetch data and on success render view
app.myView.fetchData();
将重新获取并重新呈现视图。
{{1}}