【问题标题】:KnockoutJS data-bind attr to a function doesn't seem to workKnockoutJS 数据绑定属性到函数似乎不起作用
【发布时间】:2012-03-18 22:42:03
【问题描述】:

我正在尝试使用 KnockoutJS 将一个属性数据绑定到一个函数,这样我就可以进行一些字符串操作,并且努力让它工作。

以下工作非常好:

<div data-bind="html: doSomething($data)></div>

但是,以下不是:

<a data-bind="attr: { src: doSomething($data)}">link</a>

有人可以帮我解决这个问题吗?

【问题讨论】:

    标签: knockout.js


    【解决方案1】:

    您可能会遇到几个问题。

    首先,您应该使用href 而不是src 作为锚链接。

    其次,doSomething 住在哪里?它是一个全局函数吗?它是存在于数组中的每个项目上还是存在于顶级视图模型上。如果它位于根视图模型上,那么您可以在您正在执行foreach 的项目范围内使用$root.doSomething 引用它。

    这是一个示例:http://jsfiddle.net/rniemeyer/WbxPm/

    【讨论】:

    • 对不起,我不假思索地快速输入了问题,这是我正在使用的'href',但由于我同时也在整理一些图像,所以我必须输入' src' 错误。至于 doSomething 方法,它作为一个全局函数存在,所以无论我做什么似乎都无法访问它。
    • 如果可能的话,我会尝试根据我的小提琴重现您的场景。您的问题中没有足够的代码来提出更多建议。另外,你有错误吗?是达到你的功能还是说没找到?
    • 这基本上就是我想要做的事情:jsfiddle.net/JustinN/WbxPm/2 - 这给出了错误无法解析绑定。消息:ReferenceError:doSomething 未定义;
    • 在小提琴中,在选择框架下,选择“no wrap (body)”。目前js代码是onLoad运行的,也就是说它是在一个函数中执行的,所以doSomething不是全局的。
    • 感谢您的帮助,现在一切都像魅力一样。我还计划阅读您网站上的文章,再次感谢。
    猜你喜欢
    • 2010-11-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-05-03
    • 1970-01-01
    • 2011-06-08
    • 2010-10-08
    • 1970-01-01
    相关资源
    最近更新 更多