Javascript 敲除数据绑定函数
你好,我试过了,但我做不到 HTML 如果我用这个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:
<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);