首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >公开一个全局可计算的

公开一个全局可计算的
EN

Stack Overflow用户
提问于 2012-12-18 10:47:06
回答 2查看 111关注 0票数 2

我想在knockout.js中公开一个全局可计算的(而不提升到全局javascript范围),例如:

代码语言:javascript
复制
<span data-binding="text: resource('test/resources', 'myresource')"></span>

或者,使用一些绑定将一个新值传递给父值:

代码语言:javascript
复制
<span data-binding="text: {resource: res: 'test/resources', name: 'myresource'}"></span>

不幸的是,我彻底的搜索还没有找到任何线索。这有可能吗?

注意:我知道我可以将它添加到ViewModel中,但是这不能处理嵌套对象,而且$root.resource不适合我的标准。我也可以使用继承,但如果可能的话,我想避免这种情况。本质上,我要做的是扩展ko中的“表达式”。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2012-12-19 13:49:55

您可以通过自定义绑定来完成这一任务:

代码语言:javascript
复制
ko.bindingHandlers.resource = {
    init: function(element, valueAccessor){
        // Do here whathever you'd like to do with the resource

    }
};

您可以像标准KO绑定一样使用此自定义绑定,例如:

代码语言:javascript
复制
<div data-bind="resource: myResource"></div>

在这里工作小提琴

编辑根据您提供的新信息更新了我的小提琴,在这里:小提琴

票数 1
EN

Stack Overflow用户

发布于 2012-12-18 10:51:34

好的,我要么使用这种模式进行继承,要么简单地将ko中的名称空间化名并修改它(基本上将名称空间从ko复制到某个对象,并在达到所需的功能之前一直使用它)。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/13931278

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档