Javascript 在绑定过程自身上取消多个操作

Javascript 在绑定过程自身上取消多个操作,javascript,knockout.js,Javascript,Knockout.js,我有以下代码: <button data-bind="click:function(){ saveTask(), toggle()}">Save</button> 我收到一个错误,该项未定义 通常,当我将一个函数绑定到单击时,它将是: <button data-bind="click:saveTask">Save</button> 保存 然后,当我通过单击绑定多个函数时,我当前所在的项将传递给saveTask函数。我如何将当前项(self)传

我有以下代码:

<button data-bind="click:function(){ saveTask(), toggle()}">Save</button>
我收到一个错误,该项未定义

通常,当我将一个函数绑定到单击时,它将是:

<button data-bind="click:saveTask">Save</button>
保存

然后,当我通过单击绑定多个函数时,我当前所在的项将传递给saveTask函数。我如何将当前项(self)传递给saveTask函数?

您没有将参数传递给绑定函数或它调用的函数。你的装订应该是这样的:

保存

当您编写
data bind=“click:saveTask”
时,Knockout正在调用
saveTask
,如下所示:saveTask(item)。因为您为它提供了一个匿名函数,所以您也需要这样做。

数据绑定属性中使用“函数””关键字非常“不固定”

但是,如果您喜欢,可以这样做:

<button data-bind="click:function(){ saveTask($data), toggle($data)}">Save</button>


您需要将
作为匿名函数的参数,然后将其传递给
saveTask
。不要定义复杂的内联绑定处理程序。只是不要。(复杂的意思是:任何涉及
函数的内容。创建执行复杂功能的viewmodel函数。
<button data-bind="click:function(){ saveTask($data), toggle($data)}">Save</button>