中調用我正在探索MarionetteJS的BBCloneMail演示應用程序,但我沒有看到事件如何觸發渲染操作。我看到一些全球「秀」活動在這裏:這個事件在MarionetteJS
show: function(){
this._showAppSelector("mail");
Marionette.triggerMethod.call(this, "show");
},
,但我沒有看到,這裏的/在Marionette.triggerMethod結果如何進入渲染郵件組件。我試圖爲我的情況調用triggerMethod,但我得到'無法調用申請undefined'。爲什麼上面的調用適用於BBcloneMail應用程序。
我的情況下,應用控制器:
MA.AppController = Marionette.Controller.extend({ initialize: function(){ _.bindAll(this, "_showGenres"); }, show: function() { if (MA.currentUser) { MA.navbar.show(new MA.Views.Items.LogoutNavbar({model: MA.currentUser})); } else { MA.navbar.show(new MA.Views.Items.LoginNavbar()); } this._showGenres(); }, _showGenres: function() { var categoryNav = new MA.Navigation.Filter({ region: MA.filter }); this.listenTo(categoryNav, "genre:selected", this._categorySelected); categoryNav.show(); MA.main.show(MA.composites.movies); }, showMovieByGenre: function(genre){ var movies = new MA.Controllers.MoviesLib(); that = this; $.when(movies.getByCategory(genre)).then(that._showMovieList); Backbone.history.navigate("#movies/genres/" + genre); }, _showMovieList: function(movieList){ var moviesLib = new MA.Controllers.MoviesLib({ region: MA.main, movies: movieList }); Marionette.triggerMethod.call(this, "show"); } });
我初始化與一個init.js應用控制器:
app = new MA.AppController();
你可以發佈你的控制器代碼嗎? – nemesv 2013-04-30 06:50:30