Explorar o código

make repeat pre-compile

Evan You %!s(int64=11) %!d(string=hai) anos
pai
achega
4745e0284f
Modificáronse 1 ficheiros con 9 adicións e 0 borrados
  1. 9 0
      src/directives/repeat.js

+ 9 - 0
src/directives/repeat.js

@@ -2,6 +2,8 @@ var _ = require('../util')
 var textParser = require('../parse/text')
 var textParser = require('../parse/text')
 var expParser = require('../parse/expression')
 var expParser = require('../parse/expression')
 var templateParser = require('../parse/template')
 var templateParser = require('../parse/template')
+var compile = require('../compile/compile')
+var transclude = require('../compile/transclude')
 var uid = 0
 var uid = 0
 
 
 module.exports = {
 module.exports = {
@@ -94,6 +96,12 @@ module.exports = {
         )
         )
       }
       }
     }
     }
+    // pre-compile if we have determined Ctor
+    var Ctor = this.Ctor
+    if (Ctor) {
+      this.el = transclude(this.el, Ctor.options)
+      this._linker = compile(this.el, Ctor.options)
+    }
   },
   },
 
 
   /**
   /**
@@ -236,6 +244,7 @@ module.exports = {
     var Ctor = this.Ctor || this.resolveCtor(data)
     var Ctor = this.Ctor || this.resolveCtor(data)
     var vm = this.vm._addChild({
     var vm = this.vm._addChild({
       el: this.el.cloneNode(true),
       el: this.el.cloneNode(true),
+      _linker: this._linker,
       data: data,
       data: data,
       parent: this.vm
       parent: this.vm
     }, Ctor)
     }, Ctor)