我的路由器訪問變量
var AppRouter = Backbone.Router.extend({
routes: {
':*':'home',
'home' : 'home',
'home/:a' : 'home',
'*whatever' : '404'
},
home: function (a) {
document.title = siteTitle + ' - Home';
homePage = new HomePage;
homePage.render(a);
},
404: function(){
document.title = siteTitle + ' - 404';
fofPage = new FoFPage;
fofPage.render();
}
});
我家的觀點
var HomePage = Backbone.View.extend({
initialize: function (options) {
_.bindAll(this, 'beforeRender', 'render', 'afterRender');
var _this = this;
this.render = _.wrap(this.render, function (render) {
_this.beforeRender();
render();
_this.afterRender();
return _this;
});
},
beforeRender: function() {
console.log('beforeRender');
},
el: $('#indexcontent'),
template: _.template(homeHTML, {}),
render: function (a) {
(a == null) ? Backbone.history.navigate('home'): Backbone.history.navigate('home/' + a);
console.log('Passed parameter is ' + a);
this.$el.html(this.template);
},
afterRender: function() {
$('pre code').each(function (i, block) {
hljs.highlightBlock(block);
});
console.log('afterRender');
}
});
我想抓住從路由器變量a
查看。但它顯示在我的控制檯中未定義。我在初始化時嘗試了變量options
,但沒有運氣。 感謝
PS:https://bitbucket.org/sizil/backbone-requireboiler/overview這是Backbone JS和RequireJS的示例boilet板,如果有人想的話。這是我的第一次回購,所以請原諒我的罪過。 – unkn0wn
Hardcoding'el:$('#indexcontent')'是個壞主意。該選項應該是動態的。你可以用'id'來簡單地裝飾默認元素 –
我同意硬編碼元素是一個壞主意。但是對於這個特殊的骨架,我需要硬編碼,因爲我的索引頁面在加載器中是空白的。 – unkn0wn