UNPKG

@danielkalen/simplybind

Version:

Magically simple, framework-less one-way/two-way data binding for frontend/backend in ~5kb.

46 lines (38 loc) 851 B
import vIf from '../public/if' import FragmentFactory from '../../fragment/factory' import { PARTIAL } from '../priorities' import { createAnchor, replace, resolveAsset } from '../../util/index' export default { priority: PARTIAL, params: ['name'], // watch changes to name for dynamic partials paramWatchers: { name (value) { vIf.remove.call(this) if (value) { this.insert(value) } } }, bind () { this.anchor = createAnchor('v-partial') replace(this.el, this.anchor) this.insert(this.params.name) }, insert (id) { var partial = resolveAsset(this.vm.$options, 'partials', id, true) if (partial) { this.factory = new FragmentFactory(this.vm, partial) vIf.insert.call(this) } }, unbind () { if (this.frag) { this.frag.destroy() } } }