更新淘汰视图模型属性时触发更改事件

Bob*_*uer 11 javascript knockout.js

这是一个jsfiddle来显示问题所在:

http://jsfiddle.net/boblauer/BgvV4/

我正在尝试在更新文本字段后触发更改事件.不幸的是,在subscribe方法中,文本框的值尚未更新,因此当我计算更改事件时,它很快就会被触发.

我需要触发更改事件,因为我的第三方代码不受我的控制,依赖于更改事件.

有什么建议?

bmo*_*ode 9

一个简单的解决方案是在setTimeout中将调用包装为$("#text1").change(),超时为0.这足以让knockout在jquery更改处理程序获取之前对文本框值进行(同步)更新调用.

我分叉你的小提琴演示:http: //jsfiddle.net/SuRYa/1//

如果这是你需要做的事情,一个更好的解决方案可能是将这种行为包装在一个自定义绑定中,其中绑定的"更新"回调将触发更新元素上的jquery change事件.