我有一个domElement <div data-bind:visible: open()>
,我从中获取了上下文:
var context = ko.contextFor(domElement);
如何从visible
获取div
- 绑定的值(无需解析完整的context
- 字符串);
答案 0 :(得分:2)
免责声明:我真的无法想到你实际上需要这样做的情况,我只是表明它是可能的。
淘汰赛exposes its bindingProvider
instance。这是管理data-bind
属性字符串解析的代码段。您可以使用其getBindings
方法检索如下对象:{ visible: ..., text: ..., etc. }
。
使用此方法,执行再次解析字符串,但在调用applyBindings
之后,您将使用先前已执行的完全相同的逻辑删除。
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;