概要
underscore.jsのwrapを利用してフック付きのViewを作成する
サンプル
フック付きView(coffee script)
class @ExtendedBackBoneView extends Backbone.View constructor: (options = {}) -> super @render = _.wrap @render, (render) => @before_render() render() @after_render() @ before_render: () => console.log 'before_render' console.log @model render: () => console.log 'parent_render' @ after_render: () => window.notice = '' console.log 'after_rdender'
利用側
継承元にExtendedBackBoneViewを指定するだけ。
画面AのViewの任意の処理時に
window.notice = 'message'
を設定します。遷移先の画面にいくとレンダリング終了後に基底クラスの
after_renderが実行されるためメッセージは1度しか表示されません。
実行時コンソールログ
before_render parent_render after_rdender