对象 #<Object> 在直接使用 Observable 时没有方法'apply'



我有一个显示问题的 plunk:http://plnkr.co/edit/VcLSX8KmyPwxU6EXe9RR。

如果选择一行,将显示一个模式。 如果单击取消按钮,将出现另一个模式以确认取消。 在取消模式上,有两个"否"按钮。 一个直接更新可观察量,另一个通过另一个函数更新可观察量。 两者都似乎按预期工作,但调用可观察量的那个直接在控制台中抛出错误。

我正在寻找有关此的更多信息。 我不想公开一个额外的函数来更新这个可观察量,但如果这是正确的方法,那么这就是我将这样做的方式。 另外,如果它是正确的方式,是否有一些地方可以解释为什么它是正确的方式。

使用click绑定时,需要确保传递对函数的引用,而不是直接调用函数。

因此,在您的绑定中,您正在执行以下操作:

data-bind="click: $parent.showCancelDialog(false)"

这将最终在绑定代码时执行代码。您可能希望指向将其设置为 false 的函数,例如:

data-bind="click: $parent.hideCancelDialog"

使用该函数将其设置为false或者您可以使用bind创建一个内联的函数,其中包含固定的第一个参数,例如:

data-bind="click: $parent.showCancelDialog.bind(null, false)"

第一个参数是上下文(this执行时),这对于设置可观察量无关紧要,这就是为什么我只使用null

最新更新