Advertisement
Guest User

Untitled

a guest
Jan 31st, 2015
178
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 0.91 KB | None | 0 0
  1. define ['marionette', 'radio'], (Marionette, Radio)->
  2.  
  3. class AutoLayout extends Marionette.Behavior
  4. defaults:
  5. regionViews: {}
  6. regionViewsOptions: {}
  7. events:
  8. loadStart: 'loader:start'
  9. loadStop: 'loader:stop'
  10.  
  11. onRender: ->
  12. rViews = _.result @options.regionViews
  13. unless _.isObject(rViews) and _.keys(rViews).length
  14. return throw "Invalid regionViews"
  15.  
  16. _(rViews).each @attachView
  17.  
  18. attachView: (rURL, rName)->
  19. options = _.result(@options.regionViewsOptions)[rName]
  20. region = @view.getRegion rName
  21.  
  22. evtStart = @options.events.loadStart
  23. evtStop = @options.events.loadStop
  24.  
  25. @view.trigger evtStart, rURL, region
  26. requirejs [rURL], (View)=>
  27. view = new View(options)
  28. region.show view
  29.  
  30. @view.trigger evtStop, view, region
  31.  
  32. window.Behaviors.AutoLayout = AutoLayout
  33. return AutoLayout
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement