gpt4 book ai didi

javascript - 如何停止knockout js绑定(bind)的初始评估?

转载 作者:行者123 更新时间:2023-12-02 16:31:33 25 4
gpt4 key购买 nike

我正在学习 Knockout JS 并遵循他们的在线交互式教程。

我有一个添加新预订的按钮。

<button data-bind="click: addSeat($('#passenger-name').val(), $('#selected-meal').val()), enable: seats().length < 5">Reserve another seat</button>

但是问题是,当 Knockout 计算绑定(bind)表达式时(或者我是这么认为),最初会调用 addSeat 函数。它在页面加载时添加一个空行。

如何阻止这种情况发生?

Find the example over here

最佳答案

函数 addSeat 被调用,因为您在绑定(bind)中调用了它。单击绑定(bind)期望接收对函数的引用,而不是应调用的代码。因此,为了进行您想要的调用,您必须将其包装在函数中。

<button data-bind="click: function () { addSeat($('#passenger-name').val(), $('#selected-meal').val()); }, enable: seats().length < 5">Reserve another seat</button>

这里是更新的示例:http://jsfiddle.net/9kk0haga/

但在你的情况下,更好的解决方案是替换 jQuery 代码以使用 knockout 绑定(bind):http://jsfiddle.net/9kk0haga/1/

关于javascript - 如何停止knockout js绑定(bind)的初始评估?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28260527/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com