diff options
Diffstat (limited to 'alpinejs/packages/alpinejs/src/directives/x-ref.js')
-rw-r--r-- | alpinejs/packages/alpinejs/src/directives/x-ref.js | 16 |
1 files changed, 16 insertions, 0 deletions
diff --git a/alpinejs/packages/alpinejs/src/directives/x-ref.js b/alpinejs/packages/alpinejs/src/directives/x-ref.js new file mode 100644 index 0000000..9d6bbf6 --- /dev/null +++ b/alpinejs/packages/alpinejs/src/directives/x-ref.js @@ -0,0 +1,16 @@ +import { closestRoot } from '../lifecycle' +import { directive } from '../directives' + +function handler () {} + +handler.inline = (el, { expression }, { cleanup }) => { + let root = closestRoot(el) + + if (! root._x_refs) root._x_refs = {} + + root._x_refs[expression] = el + + cleanup(() => delete root._x_refs[expression]) +} + +directive('ref', handler) |