第一次事件触发后,骨干视图不会更新

时间:2014-10-22 03:08:31

标签: javascript backbone.js

我有一个骨干视图,只有一个单击事件来更新集合。在我的控制台中,我可以看到正在更新的对象以及返回的模型数量正在发生变化,但是在第一次触发事件后视图保持静态,并且任何第二次触发它的尝试都会给出错误{{1} }。作为参考,我在页面底部加载了脚本,模板(使用下划线)位于其上方。

这是我的观点

TypeError: text is undefined

1 个答案:

答案 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}}