UNPKG

@paperbits/core

Version:
24 lines (19 loc) 796 B
import * as ko from "knockout"; import { View } from "@paperbits/common/ui"; import { ViewBehavior } from "@paperbits/common/behaviors/behavior.view"; ko.bindingHandlers["view"] = { init: function (element: HTMLElement, valueAccessor: () => View): any { const view = valueAccessor(); const componentBinder = view.component.binder; if (!componentBinder) { ko.applyBindingsToNode(element, { component: view.component }, null); return; } const behaviorHandle = ViewBehavior.attach(element, view); if (behaviorHandle && behaviorHandle.detach) { ko.utils.domNodeDisposal.addDisposeCallback(element, () => { behaviorHandle.detach(); }); } } };