Knockout:如何从元素绑定上下文获取visible绑定的值
如何从Knockout上下文获取元素的visible绑定值
嘿,完全不用费劲去解析DOM字符串啦,Knockout本身就提供了现成的方法来搞定这个需求,步骤超简单:
获取元素的绑定配置对象
你已经通过ko.contextFor(domElement)拿到了绑定上下文,接下来用ko.getBindings()方法,传入DOM元素和上下文,就能直接得到该元素上所有data-bind的解析结果:const bindings = ko.getBindings(domElement, context);提取visible绑定的当前值
从返回的bindings对象里直接取visible字段就行,这里分两种常见情况处理:- 如果你的绑定是可执行表达式(比如
open()),那bindings.visible是一个函数,调用它就能拿到实时计算后的结果:if (bindings?.visible) { const currentVisibleState = bindings.visible(); console.log('当前visible绑定的状态:', currentVisibleState); } - 如果绑定的是可观察对象本身(比如
open不带括号),那bindings.visible就是这个可观察对象,同样调用它来获取当前值:const currentVisibleState = bindings.visible();
- 如果你的绑定是可执行表达式(比如
小补充
ko.getBindings()会自动帮你处理data-bind属性的解析逻辑,省去了手动拆分字符串、解析表达式的麻烦,而且能直接关联到当前的绑定上下文,确保拿到的是准确的绑定值。
内容的提问来源于stack exchange,提问作者Lokomotywa
相关产品推荐
相关产品推荐

