Просмотр исходного кода

fix template parsing wrapping wrong elements as svg (fix #2500)

Evan You 10 лет назад
Родитель
Сommit
f6f9ea4a65
2 измененных файлов с 13 добавлено и 1 удалено
  1. 1 1
      src/parsers/template.js
  2. 12 0
      test/unit/specs/misc_spec.js

+ 1 - 1
src/parsers/template.js

@@ -74,7 +74,7 @@ function isRealTemplate (node) {
   return isTemplate(node) && isFragment(node.content)
 }
 
-const tagRE = /<([\w:]+)/
+const tagRE = /<([\w:-]+)/
 const entityRE = /&#?\w+?;/
 
 /**

+ 12 - 0
test/unit/specs/misc_spec.js

@@ -525,4 +525,16 @@ describe('Misc', function () {
       done()
     }
   })
+
+  // #2500
+  it('template parser tag match should include hyphen', function () {
+    var vm = new Vue({
+      el: document.createElement('div'),
+      template: '<div>{{{ test }}}</div>',
+      data: {
+        test: '<image-field></image-field>'
+      }
+    })
+    expect(vm.$el.querySelector('image-field').namespaceURI).not.toMatch(/svg/)
+  })
 })