瀏覽代碼

Add x-teleport warnings

Caleb Porzio 3 年之前
父節點
當前提交
8dd9331fc6
共有 1 個文件被更改,包括 6 次插入0 次删除
  1. 6 0
      packages/alpinejs/src/directives/x-teleport.js

+ 6 - 0
packages/alpinejs/src/directives/x-teleport.js

@@ -2,9 +2,15 @@ import { directive } from "../directives"
 import { addInitSelector, initTree } from "../lifecycle"
 import { mutateDom } from "../mutation"
 import { addScopeToNode } from "../scope"
+import { warn } from "../utils/warn"
 
 directive('teleport', (el, { expression }, { cleanup }) => {
+    if (el.tagName.toLowerCase() !== 'template') warn('x-teleport can only be used on a <template> tag', el)
+
     let target = document.querySelector(expression)
+
+    if (! target) warn(`Cannot find x-teleport element for selector: "${expression}"`)
+
     let clone = el.content.cloneNode(true).firstElementChild
 
     // Add reference to element on <template x-teleport, and visa versa.