Knockout - 从绑定Context的Element获取依赖关系

时间:2018-01-31 11:51:40

标签: knockout.js

我有一个domElement <div data-bind:visible: open()>,我从中获取了上下文: var context = ko.contextFor(domElement);

如何从visible获取div - 绑定的值(无需解析完整的context - 字符串);

1 个答案:

答案 0 :(得分:2)

免责声明:我真的无法想到你实际上需要这样做的情况,我只是表明它是可能的。

淘汰赛exposes its bindingProvider instance。这是管理data-bind属性字符串解析的代码段。您可以使用其getBindings方法检索如下对象:{ visible: ..., text: ..., etc. }

使用此方法,执行再次解析字符串,但在调用applyBindings之后,您将使用先前已执行的完全相同的逻辑删除。

&#13;
&#13;
const app = { visible: ko.observable(false) };
ko.applyBindings(app);

const div = document.querySelector("div");

// Collect required knockout info
const divCtx = ko.contextFor(div);
const bp = ko.bindingProvider.instance;

// Get the bindings object
const bindings = bp.getBindings(div, divCtx);

// Get the visible binding's value
const boundToVisible = bindings.visible;

// Use it any way you like
boundToVisible(true);
&#13;
<script src="https://cdnjs.cloudflare.com/ajax/libs/knockout/3.4.2/knockout-min.js"></script>

<div data-bind="visible: visible">Hello</div>
&#13;
&#13;
&#13;