Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- define ['marionette', 'radio'], (Marionette, Radio)->
- class AutoLayout extends Marionette.Behavior
- defaults:
- regionViews: {}
- regionViewsOptions: {}
- events:
- loadStart: 'loader:start'
- loadStop: 'loader:stop'
- onRender: ->
- rViews = _.result @options.regionViews
- unless _.isObject(rViews) and _.keys(rViews).length
- return throw "Invalid regionViews"
- _(rViews).each @attachView
- attachView: (rURL, rName)->
- options = _.result(@options.regionViewsOptions)[rName]
- region = @view.getRegion rName
- evtStart = @options.events.loadStart
- evtStop = @options.events.loadStop
- @view.trigger evtStart, rURL, region
- requirejs [rURL], (View)=>
- view = new View(options)
- region.show view
- @view.trigger evtStop, view, region
- window.Behaviors.AutoLayout = AutoLayout
- return AutoLayout
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement