Quellcode durchsuchen

Merge pull request #2182 from tgeorgiev/dev

stringToFragment not using cache when templateString != templateStrin…
Evan You vor 10 Jahren
Ursprung
Commit
45646f1ef2
2 geänderte Dateien mit 11 neuen und 4 gelöschten Zeilen
  1. 2 4
      src/parsers/template.js
  2. 9 0
      test/unit/specs/parsers/template_spec.js

+ 2 - 4
src/parsers/template.js

@@ -108,10 +108,8 @@ function stringToFragment (templateString, raw) {
     var suffix = wrap[2]
     var node = document.createElement('div')
 
-    if (!raw) {
-      templateString = templateString.trim()
-    }
-    node.innerHTML = prefix + templateString + suffix
+    var templateStringToUse = raw ? templateString : templateString.trim()
+    node.innerHTML = prefix + templateStringToUse + suffix
     while (depth--) {
       node = node.lastChild
     }

+ 9 - 0
test/unit/specs/parsers/template_spec.js

@@ -170,4 +170,13 @@ describe('Template Parser', function () {
     expect(res.childNodes.length).toBe(1)
     expect(res.firstChild.tagName).toBe('P')
   })
+
+  it('should reuse fragment from cache for the same string template', function () {
+    var stringTemplate = '    <p>test</p>    '
+    // When parsing a template, adds the created fragment to a cache
+    var res = parse(stringTemplate)
+
+    var newRes = parse(stringTemplate)
+    expect(newRes).toBe(res)
+  })
 })