Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/441.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 淘汰:XXX不是一个函数错误_Javascript_Knockout.js - Fatal编程技术网

Javascript 淘汰:XXX不是一个函数错误

Javascript 淘汰:XXX不是一个函数错误,javascript,knockout.js,Javascript,Knockout.js,我正在学习Knockout.js并使用with:binding更改绑定上下文,如下所示: HTML: 单击图像时,出现以下错误: 未捕获类型错误:this.currentCat不是函数 相同的代码在不使用和绑定的情况下工作。有人能解释一下我改变了背景后发生了什么变化吗 当用作事件处理程序时,此会释放其上下文。使用.bind this.incrementCounter = function() { this.currentCat().count(this.currentCat().coun

我正在学习Knockout.js并使用
with:binding
更改绑定上下文,如下所示:

HTML:

单击图像时,出现以下错误:

未捕获类型错误:this.currentCat不是函数


相同的代码在不使用
绑定的情况下工作。有人能解释一下我改变了背景后发生了什么变化吗

当用作事件处理程序时,此
会释放其上下文。使用
.bind

this.incrementCounter = function() {
    this.currentCat().count(this.currentCat().count() + 1);
}.bind(this);

当用作事件处理程序时,此
会释放其上下文。使用
.bind

this.incrementCounter = function() {
    this.currentCat().count(this.currentCat().count() + 1);
}.bind(this);

哇,这解决了问题。谢谢你,先生。你能详细解释一下你所说的“当用作事件处理程序时,它会失去上下文”是什么意思,以及绑定是如何解决这个问题的吗?@akshayKhot谢谢你的链接。在将
一起使用之前,我进行了
数据绑定=单击:incrementCounter
和相同的JS(不带绑定)。那一次成功了。为什么用
使它失败?哇,这解决了问题。谢谢你,先生。你能详细解释一下你所说的“当用作事件处理程序时,它会失去上下文”是什么意思,以及绑定是如何解决这个问题的吗?@akshayKhot谢谢你的链接。在将
一起使用之前,我有
数据绑定=“click:incrementCounter
和没有绑定的同一个JS。当时它工作正常。为什么
一起使用会失败?
this.incrementCounter = function() {
    this.currentCat().count(this.currentCat().count() + 1);
}.bind(this);