Sha256: 5c71308a808d9069a61496e22cbe45027b601588f50171336e2fb84eb6f13a5a
Contents?: true
Size: 1.18 KB
Versions: 3
Compression:
Stored size: 1.18 KB
Contents
var _ = require('../util') module.exports = { acceptStatement: true, priority: 700, bind: function () { // deal with iframes if ( this.el.tagName === 'IFRAME' && this.arg !== 'load' ) { var self = this this.iframeBind = function () { _.on(self.el.contentWindow, self.arg, self.handler) } this.on('load', this.iframeBind) } }, update: function (handler) { if (typeof handler !== 'function') { process.env.NODE_ENV !== 'production' && _.warn( 'Directive v-on="' + this.arg + ': ' + this.expression + '" expects a function value, ' + 'got ' + handler ) return } this.reset() var vm = this.vm this.handler = function (e) { e.targetVM = vm vm.$event = e var res = handler(e) vm.$event = null return res } if (this.iframeBind) { this.iframeBind() } else { _.on(this.el, this.arg, this.handler) } }, reset: function () { var el = this.iframeBind ? this.el.contentWindow : this.el if (this.handler) { _.off(el, this.arg, this.handler) } }, unbind: function () { this.reset() } }
Version data entries
3 entries across 3 versions & 1 rubygems