Javascript 敲除数据绑定函数

Javascript 敲除数据绑定函数,javascript,knockout.js,data-binding,Javascript,Knockout.js,Data Binding,你好,我试过了,但我做不到 HTML 如果我用这个 <div data-bind="dxButton: { text: 'Start', onClick: DataBind}"></div> <div data-bind="dxButton: { text: 'Start', onClick: StartScan}"></div> 没关系。这会让我回“你好,世界” 但是如果我用这个 <div data-bind="dxButton:

你好,我试过了,但我做不到

HTML

如果我用这个

<div data-bind="dxButton: { text: 'Start', onClick: DataBind}"></div>
<div data-bind="dxButton: { text: 'Start', onClick: StartScan}"></div>

没关系。这会让我回“你好,世界”

但是如果我用这个

<div data-bind="dxButton: { text: 'Start', onClick: DataBind}"></div>
<div data-bind="dxButton: { text: 'Start', onClick: StartScan}"></div>

它会像这样返回错误-> 错误:“未捕获类型错误:this.my_var不是函数”


如何解决此问题?

当您传递对函数的引用,该函数稍后将由
setInterval
(或
setTimeout
)调用时,其上下文将是全局范围(
window
)。因此,
this.my_var
显然会返回
undefined

您需要使用
.bind(this)
将它显式地
绑定到正确的上下文(即保存它的
viewModel
):


参见

您需要
mytimer=setInterval(this.DataBind.bind(this),1000)@haim770谢谢,它能工作。你能写下这个作为答案吗。所以我把它标记为解决方案。
mytimer = setInterval(this.DataBind.bind(this), 1000);