芝麻web文件管理V1.00
编辑当前文件:/home/digitalh/public_html/node_modules/alpinejs/src/directives/x-data.js
import { directive, prefix } from '../directives' import { initInterceptors } from '../interceptor' import { injectDataProviders } from '../datas' import { addRootSelector } from '../lifecycle' import { skipDuringClone } from '../clone' import { addScopeToNode } from '../scope' import { injectMagics, magic } from '../magics' import { reactive } from '../reactivity' import { evaluate } from '../evaluator' addRootSelector(() => `[${prefix('data')}]`) directive('data', skipDuringClone((el, { expression }, { cleanup }) => { expression = expression === '' ? '{}' : expression let magicContext = {} injectMagics(magicContext, el) let dataProviderContext = {} injectDataProviders(dataProviderContext, magicContext) let data = evaluate(el, expression, { scope: dataProviderContext }) if (data === undefined || data === true) data = {} injectMagics(data, el) let reactiveData = reactive(data) initInterceptors(reactiveData) let undo = addScopeToNode(el, reactiveData) reactiveData['init'] && evaluate(el, reactiveData['init']) cleanup(() => { reactiveData['destroy'] && evaluate(el, reactiveData['destroy']) undo() }) }))