マイルータアクセス変数
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');
}
});
。しかし、私のコンソールでは未定義と表示されます。私は変数options
で初期化してみましたが、不運にしました。 おかげ
PS:https://bitbucket.org/sizil/backbone-requireboiler/overviewこれは、誰かが望むなら、Backbone JSとRequireJSのサンプルのボイルレットプレートです。これは私の最初のレポで、私の罪を許してくれます。 – unkn0wn
'el:$( '#indexcontent')ハードコーディングは悪い考えです。そのオプションは動的であるはずです。あなたは単純にデフォルトの要素を 'id'で飾ることができます –
私はハードコーディング要素が悪い考えであることに同意します。しかし、この特定のスケルトンでは、インデックスページがローダーで空白になっているので、ハードコードする必要があります。 – unkn0wn