我正在使用带有backbone.js的jQuery Mobile.当我加载主页时,我收到以下错误:
Uncaught TypeError: Cannot call method '_trigger' of undefined
这是我加载主页所做的.
在routes.js中:
routes:{ '':'home',} home:function () { new HomeView(); this.changePage(new HomeContentView()); },changePage:function (page) { $(page.el).attr('data-role','page'); console.log($(page.el)); page.render(); $('body').append($(page.el)); var transition = $.mobile.defaultPageTransition; if (this.firstPage) { transition = 'none'; this.firstPage = false; } $.mobile.changePage($(page.el),{changeHash:false,transition: transition}); }
在view.js中
window.HomeView = Backbone.View.extend({ template : Handlebars.compile($('#home').html()),render : function (eventname) { this.$el.html(this.template()); this.header = new HeaderElement(); this.$el.find('div.header_element').append(this.header.$el); this.footer = new FooterElement(); this.$el.find('div.footer_element').append(this.footer.$el); return this; } }); window.HomeContentView = Backbone.View.extend({ initialize: function(options) { this.collection = new Fan(); this.template = Handlebars.compile(tpl.get('elements/home')); //~ console.log(tpl.get('home')); this.collection.on("reset",this.render,this); this.init = true; if (this.init) { upLimit = 1; this.collection.index(); this.init = false; } },el: '#home_content_view',render : function (eventName) { var self = this; var js = (self.collection.toJSON())[0]; console.log(js); $('#home_content_view').html(self.template(js)); $('#home_content_view').trigger("create"); } });
在home.html
<div data-role="content"> hi </div>
错误堆栈跟踪:
Uncaught TypeError: Cannot call method '_trigger' of undefined jquery.mobile-1.1.1.js:2843 transitionPages jquery.mobile-1.1.1.js:2843 $.mobile.changePage jquery.mobile-1.1.1.js:3465 Backbone.Router.extend.changePage routes.js:153 Backbone.Router.extend.home routes.js:37 f.extend.route backbone-min.js:27 f.extend.loadUrl backbone-min.js:32 b.some.b.any underscore-min.js:14 f.extend.loadUrl backbone-min.js:32 f.extend.start backbone-min.js:31 (anonymous function) routes.js:162 $.ajax.success view.js:29 v.Callbacks.l jquery-1.8.3.min.js:2 v.Callbacks.c.fireWith jquery-1.8.3.min.js:2 T jquery-1.8.3.min.js:2 v.support.ajax.v.ajaxTransport.send.r jquery-1.8.3.min.js:2