2012-03-18 43 views
2

我想用KnockoutJS数据绑定到一个函数的属性,所以我可以做一些字符串操作,并努力让它工作。KnockoutJS数据绑定attr函数似乎没有工作

以下工作完全正常:

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

但是,下列情况不:

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

可能有人请帮助我得到这个工作?

回答

7

您可能会面临一些问题。

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

二,doSomething住在哪里?这是一个全球性的功能吗?它是否位于数组中的每个项目或顶级视图模型上?如果它位于根视图模型上,则可以在您正在执行foreach的项目范围内使用$root.doSomething来引用它。

这里有一个例子:http://jsfiddle.net/rniemeyer/WbxPm/

+0

对不起,我赶紧打完了这个问题不思考,这是一个“HREF”我使用,但我也同时整理了一些图片,我必须错误地输入'src'。 至于doSomething方法,它作为一个全局函数存在,所以我似乎无法访问它,不管我做什么。 – JustinN 2012-03-18 23:30:48

+0

如果可能,我会尝试根据我的小提琴重现您的方案。在你的问题中没有足够的代码来提出更多的建议。另外,你是否收到错误?它是达到你的功能还是说它没有找到? – 2012-03-18 23:40:36

+0

这里基本上是我想要做的:http://jsfiddle.net/JustinN/WbxPm/2/ - 它给出了错误无法解析绑定。 消息:ReferenceError:doSomething未定义; – JustinN 2012-03-18 23:47:25