您好我尝试了一些但我不能这样做。
HTML
<div data-bind="dxTextBox: { value:my_var }"></div>
JS
var viewModel = {
my_var: ko.observable(''),
StartScan:function()
{
mytimer = setInterval(this.DataBind, 1000);
},
DataBind:function()
{
this.my_var('hello world');
},}return viewModel;
我用这个
<div data-bind="dxButton: { text: 'Start', onClick: DataBind}"></div>
没关系。这让我回归“你好世界”
但如果我用这个
<div data-bind="dxButton: { text: 'Start', onClick: StartScan}"></div>
它返回我这样的错误 - &gt; 错误:'未捕获的TypeError:this.my_var不是函数',
我该如何解决这个问题?
答案 0 :(得分:1)
当您传递对setInterval
(或setTimeout
)稍后调用的函数的引用时,其上下文将是全局范围(在本例中为window
)。因此,this.my_var
显然会返回undefined
。
您需要使用bind
将viewModel
明确.bind(this)
到正确的上下文(即mytimer = setInterval(this.DataBind.bind(this), 1000);
){/ 1>}:
pytest-benchmark
请参阅MDN