addPost
私のルーターには機能があります。postAddView
関数が呼び出されるたびにを再作成したくありません。
addPost: function () {
var that = this;
if (!this.postAddView) {
this.postAddView = new PostAddView({
model: new Post()
});
this.postAddView.on('back', function () {
that.navigate('#/post/list', { trigger: true });
});
}
this.elms['page-content'].html(this.postAddView.render().el);
}
PostAddView は次のとおりです。
PostAddView = backbone.View.extend({
events: {
'click #post-add-back': 'back'
}
, back: function (e) {
e.preventDefault();
this.trigger('back');
}
});
postAddView が初めてレンダリングされるとき、イベント トリガーは適切に機能します。ただし、他のビューをレンダリングしpage-content
てレンダリングするとpostAddView
、イベント トリガーはトリガーされなくなります。ただし、次のバージョンの はaddPost
うまく機能します。
addPost: function () {
var that = this, view;
view = new PostAddView({
model: new Post()
});
this.elms['page-content'].html(view.render().el);
view.on('back', function () {
delete view;
that.navigate('#/post/list', { trigger: true });
});
}