我想在knockout.js中公开一个全局可计算的(而不提升到全局javascript范围),例如:
<span data-binding="text: resource('test/resources', 'myresource')"></span>
或者使用一些绑定(bind)将新值传递给父值:
<span data-binding="text: {resource: res: 'test/resources', name: 'myresource'}"></span>
不幸的是,我的详尽搜索没有发现任何结果。这有可能吗?
注意:我知道我可以将其添加到 ViewModel
中,但这不会处理嵌套对象,并且 $root.resource
> 对于我的标准来说还不够干燥。我也可以使用继承,但我想如果可能的话避免这种情况。本质上我想做的是扩展 ko 中的“表达式”。
最佳答案
您可以通过自定义绑定(bind)来完成此操作:
ko.bindingHandlers.resource = {
init: function(element, valueAccessor){
// Do here whathever you'd like to do with the resource
}
};
您可以像标准 KO 绑定(bind)一样使用此自定义绑定(bind),例如:
<div data-bind="resource: myResource"></div>
工作中fiddle在这里。
编辑根据您提供的新信息更新了我的 fiddle ,此处:fiddle
关于javascript - 公开一个全局可计算的,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13931278/