diff options
| -rw-r--r-- | app/assets/javascripts/initializers/auto_view_setup.js.coffee | 5 | ||||
| -rw-r--r-- | spec/javascripts/initializers/auto_view_setup_spec.js.coffee | 3 |
2 files changed, 6 insertions, 2 deletions
diff --git a/app/assets/javascripts/initializers/auto_view_setup.js.coffee b/app/assets/javascripts/initializers/auto_view_setup.js.coffee index 8ac2dd83..2dce804e 100644 --- a/app/assets/javascripts/initializers/auto_view_setup.js.coffee +++ b/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) diff --git a/spec/javascripts/initializers/auto_view_setup_spec.js.coffee b/spec/javascripts/initializers/auto_view_setup_spec.js.coffee index acd6013d..eb5786a5 100644 --- a/spec/javascripts/initializers/auto_view_setup_spec.js.coffee +++ b/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>' |
