@@ -61,31 +61,19 @@ function compile (el, options, partial, transcluded) {
61
61
if ( childLinkFn ) childLinkFn ( source , childNodes , host )
62
62
63
63
/**
64
- * If this is a partial compile, the linker function
65
- * returns an unlink function that tearsdown all
66
- * directives instances generated during the partial
67
- * linking.
64
+ * The linker function returns an unlink function that
65
+ * tearsdown all directives instances generated during
66
+ * the process.
68
67
*/
69
68
70
- if ( partial && ! transcluded ) {
71
- var selfDirs = vm . _directives . slice ( originalDirCount )
72
- var parentDirs = vm . $parent &&
73
- vm . $parent . _directives . slice ( parentOriginalDirCount )
69
+ var selfDirs = vm . _directives . slice ( originalDirCount )
70
+ var parentDirs = vm . $parent &&
71
+ vm . $parent . _directives . slice ( parentOriginalDirCount )
74
72
75
- var teardownDirs = function ( vm , dirs ) {
76
- var i = dirs . length
77
- while ( i -- ) {
78
- dirs [ i ] . _teardown ( )
79
- }
80
- i = vm . _directives . indexOf ( dirs [ 0 ] )
81
- vm . _directives . splice ( i , dirs . length )
82
- }
83
-
84
- return function unlink ( ) {
85
- teardownDirs ( vm , selfDirs )
86
- if ( parentDirs ) {
87
- teardownDirs ( vm . $parent , parentDirs )
88
- }
73
+ return function unlink ( ) {
74
+ teardownDirs ( vm , selfDirs )
75
+ if ( parentDirs ) {
76
+ teardownDirs ( vm . $parent , parentDirs )
89
77
}
90
78
}
91
79
}
@@ -99,6 +87,24 @@ function compile (el, options, partial, transcluded) {
99
87
return compositeLinkFn
100
88
}
101
89
90
+ /**
91
+ * Teardown a subset of directives on a vm.
92
+ *
93
+ * @param {Vue } vm
94
+ * @param {Array } dirs
95
+ */
96
+
97
+ function teardownDirs ( vm , dirs ) {
98
+ var i = dirs . length
99
+ while ( i -- ) {
100
+ dirs [ i ] . _teardown ( )
101
+ }
102
+ i = vm . _directives . indexOf ( dirs [ 0 ] )
103
+ if ( i > - 1 ) {
104
+ vm . _directives . splice ( i , dirs . length )
105
+ }
106
+ }
107
+
102
108
/**
103
109
* Compile the root element of a component. There are
104
110
* 4 types of things to process here:
0 commit comments