diff --git a/spec/stdlib/template-spec.coffee b/spec/stdlib/template-spec.coffee index 537e94c66..35649b5bb 100644 --- a/spec/stdlib/template-spec.coffee +++ b/spec/stdlib/template-spec.coffee @@ -83,3 +83,9 @@ describe "Template", -> expect(view.li2Keypressed).toHaveBeenCalled() expect(view.li1Clicked).not.toHaveBeenCalled() + it "makes the original jquery wrapper accessible via the view method from any child element", -> + expect(view.view()).toBe view + expect(view.header.view()).toBe view + expect(view.subview.view()).toBe view.subview + expect(view.subview.header.view()).toBe view.subview + diff --git a/src/stdlib/template.coffee b/src/stdlib/template.coffee index a97632159..cac08434f 100644 --- a/src/stdlib/template.coffee +++ b/src/stdlib/template.coffee @@ -48,3 +48,6 @@ class Template methodName = elt.attr(eventName) elt.on eventName, (event) -> view[methodName](event, elt) +$.fn.view = -> + this.data('view') + diff --git a/src/stdlib/template/builder.coffee b/src/stdlib/template/builder.coffee index 0251db2a8..2e50e678f 100644 --- a/src/stdlib/template/builder.coffee +++ b/src/stdlib/template/builder.coffee @@ -27,6 +27,7 @@ class Builder toFragment: -> fragment = $(@toHtml()) @wireOutlets fragment + fragment.find('*').andSelf().data('view', fragment) fn(fragment) for fn in @postProcessingFns fragment