从另一个viewmodel点击事件更新Knockout viewmodel

时间:2013-11-01 02:20:52

标签: knockout.js click viewmodel bind

我有两个表,其中ko数据绑定到两个模型。我能够将数据绑定到两个模型。

我的目标:

当点击Model#1中的一行(在本例中为patientmodel)时,应使用相应的数据更新Model#2。

问题:无法触发Model#1的Click事件。

     <tbody data-bind="foreach: Patients">
            <tr data-bind="click: $root.echoMe">
                <td class="id"><a href="#" data-bind="text: patID"></a>

                </td>
                <td data-bind="text: patName"></td>
                <td data-bind="text: patBirthDate"></td>
                <td data-bind="text: patSex"></td>
             </tr>
  </tbody>

其中echoMe在patientModel中定义为:

self.echoMe = function () {
    console.log("able to trigger click !");
};

jsfiddle给了我错误:

  

消息:无法处理绑定“click:function(){return   $ root.echoMe}“

在使用数据填充视图本身时,这会中断。显示第一个,然后出现错误。

我在jfiddle上查看了淘汰文档和其他示例,但自从昨晚以来我无法弄清楚为什么这对于先生不起作用。

Jsfiddle代码:

http://jsfiddle.net/j9HJm/7/

非常感谢洞察力和帮助。

谢谢!

1 个答案:

答案 0 :(得分:0)

您在JSfiddle中使用jQuery (edge)版本 jQuery (edge)是jquery lib的最后一个版本,它不稳定 请改用稳定版本。例如。 2.0.2
使用稳定的jquery版本,您的示例按预期工作:

JSFiddle DEMO