Knockout js:无法从foremat数据绑定单击事件中的数据绑定链接打开mailto页面

时间:2012-09-17 13:46:14

标签: knockout.js viewmodel

我有一个消息列表,我将这些消息的模板绑定到一个click事件然后在这个模板里面我有一个超链接绑定到应该打开mailto页面的js函数。但是点击此链接不会打开页面,虽然js函数执行,如果我右键单击“转到此地址”它可以工作。我尝试了很多KO方法,因为“clickBubble:false”将“controlsDescendantBindings”标志设置为true,“e.stopImmediatePropagation()”......但都失败了!我被卡住了,如果有人能帮助我,我会很感激! 这是我的代码的一部分:

(部分视图)

<div data-bind="template: { name: 'messageTemplate', foreach: OldMessageCollection}">
...    
</div>

(模板:messageTemplate)

<div class="message_listed" data-bind="click: $root.GetSelectedMessage">
...
<ul class="actions_list">
<li><a data-bind="attr: { href: $root.mailToLink(ReplyTo())}"></a></li>
...
</ul>
</div>

ReplyTo()是KO中的一个observable,而OldMessageCollection是observableArray。

1 个答案:

答案 0 :(得分:5)

使用

解决
<a data-bind="attr: { href: $root.mailToLink()}, click: function() {return true;}, clickBubble: false">ReplyTo</a>