From 6cacce653364de99924229d7b20359dbc26e8a91 Mon Sep 17 00:00:00 2001 From: Bnayazil Date: Wed, 2 May 2018 11:51:14 +0300 Subject: [PATCH] Adding before and after hooks to render --- src/views/view.coffee | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/src/views/view.coffee b/src/views/view.coffee index a3eea948..fdf47a9c 100644 --- a/src/views/view.coffee +++ b/src/views/view.coffee @@ -97,6 +97,13 @@ class Mildred.View extends Backbone.View @listenTo @collection, 'dispose', (subject) => @dispose() if not subject or subject is @collection + # Wrap render method with after and before callbacks + @render = _.wrap(@render, (render) => + @beforeRender() + render() + @afterRender() + ) + # Render automatically if set by options or instance property. @render() if @autoRender @@ -320,6 +327,12 @@ class Mildred.View extends Backbone.View # Return the view. this + # Default void callbacks for before and after rendering + # The key different between `afterRender` to `attach` method is attach + # executed only once after initializing the view and not after each render. + beforeRender: -> + afterRender: -> + # This method is called after a specific `render` of a derived class. attach: -> # Automatically append to DOM if the container element is set.