我想在knockout.js中公开一个全局可计算的(而不提升到全局javascript范围),例如:
<span data-binding="text: resource('test/resources', 'myresource')"></span>或者,使用一些绑定将一个新值传递给父值:
<span data-binding="text: {resource: res: 'test/resources', name: 'myresource'}"></span>不幸的是,我彻底的搜索还没有找到任何线索。这有可能吗?
注意:我知道我可以将它添加到ViewModel中,但是这不能处理嵌套对象,而且$root.resource不适合我的标准。我也可以使用继承,但如果可能的话,我想避免这种情况。本质上,我要做的是扩展ko中的“表达式”。
发布于 2012-12-19 13:49:55
您可以通过自定义绑定来完成这一任务:
ko.bindingHandlers.resource = {
init: function(element, valueAccessor){
// Do here whathever you'd like to do with the resource
}
};您可以像标准KO绑定一样使用此自定义绑定,例如:
<div data-bind="resource: myResource"></div>在这里工作小提琴。
编辑根据您提供的新信息更新了我的小提琴,在这里:小提琴
发布于 2012-12-18 10:51:34
好的,我要么使用这种模式进行继承,要么简单地将ko中的名称空间化名并修改它(基本上将名称空间从ko复制到某个对象,并在达到所需的功能之前一直使用它)。
https://stackoverflow.com/questions/13931278
复制相似问题