|
|
@@ -32,13 +32,18 @@ export default function (Vue) {
|
|
|
|
|
|
function registerComponentEvents (vm, el) {
|
|
|
var attrs = el.attributes
|
|
|
- var name, handler
|
|
|
for (var i = 0, l = attrs.length; i < l; i++) {
|
|
|
- name = attrs[i].name
|
|
|
+ let name = attrs[i].name
|
|
|
if (eventRE.test(name)) {
|
|
|
name = name.replace(eventRE, '')
|
|
|
- handler = (vm._scope || vm._context).$eval(attrs[i].value, true)
|
|
|
- vm.$on(name.replace(eventRE), handler)
|
|
|
+ const scope = vm._scope || vm._context
|
|
|
+ const handler = scope.$eval(attrs[i].value, true)
|
|
|
+ vm.$on(name.replace(eventRE), function (...args) {
|
|
|
+ scope.$arguments = args
|
|
|
+ const result = handler.apply(this, args)
|
|
|
+ scope.$arguments = null
|
|
|
+ return result
|
|
|
+ })
|
|
|
}
|
|
|
}
|
|
|
}
|