Skip to content

Commit 67eb247

Browse files
committed
use element __vue__ as transition context if present
1 parent 9041f2f commit 67eb247

File tree

2 files changed

+17
-0
lines changed

2 files changed

+17
-0
lines changed

src/transition/js.js

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,9 @@
1111
*/
1212

1313
module.exports = function (el, direction, op, data, def, vm, cb) {
14+
// if the element is the root of an instance,
15+
// use that instance as the transition function context
16+
vm = el.__vue__ || vm
1417
if (data.cancel) {
1518
data.cancel()
1619
data.cancel = null

test/unit/specs/transition/transition_spec.js

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -340,6 +340,20 @@ if (_.inBrowser && !_.isIE9) {
340340
expect(spy).toHaveBeenCalledWith(vm)
341341
})
342342

343+
it('this context set to el instance', function () {
344+
var spy = jasmine.createSpy('js enter this')
345+
var vm2 = el.__vue__ = {}
346+
def.enter = function (e, done) {
347+
expect(e).toBe(el)
348+
expect(op).toHaveBeenCalled()
349+
done()
350+
expect(cb).toHaveBeenCalled()
351+
spy(this)
352+
}
353+
transition.apply(el, 1, op, vm, cb)
354+
expect(spy).toHaveBeenCalledWith(vm2)
355+
})
356+
343357
it('leave', function () {
344358
var spy = jasmine.createSpy('js leave')
345359
def.leave = function (e, done) {

0 commit comments

Comments
 (0)