Commit 2af9191c
Changed files (2)
app
assets
javascripts
initializers
spec
javascripts
initializers
app/assets/javascripts/initializers/auto_view_setup.js.coffee
@@ -2,10 +2,12 @@
class CakeSide.AutoViewSetup extends CakeSide.Behaviour
@on "ready"
+ @on "ajaxComplete"
execute: ->
for element in $('[data-autoview]')
- @install($(element))
+ $element = $(element)
+ @install($element) unless $element.data('autoview-setup-complete')
install: (element) ->
viewName = element.data('autoview')
@@ -14,3 +16,4 @@ class CakeSide.AutoViewSetup extends CakeSide.Behaviour
else
constructor = CakeSide.Proxy.create(CakeSide.Views, viewName)
CakeSide.AutoView.create(viewName, element, constructor)
+ element.data('autoview-setup-complete', true)
spec/javascripts/initializers/auto_view_setup_spec.js.coffee
@@ -11,10 +11,11 @@ describe "CakeSide.AutoViewSetup", ->
CakeSide.AutoView.views = {}
it 'attaches the autoview to the DOM element', ->
- fixture.set '<div data-autoview="My.ChangePassword"></div>'
+ fixture.set '<div id="item" data-autoview="My.ChangePassword"></div>'
subject.execute()
result = CakeSide.AutoView.views['My-ChangePassword'][0]
expect(result instanceof CakeSide.Views.My.ChangePassword).toEqual(true)
+ expect($('#item').data('autoview-setup-complete')).toEqual(true)
it "returns nil if the autoview cannot be discovered", ->
fixture.set '<div data-autoview="Unknown"></div>'