gpt4 book ai didi

javascript - 尝试从单击 View 中将参数传递给 knockout 函数时出现问题

转载 作者:行者123 更新时间:2023-11-27 22:58:23 25 4
gpt4 key购买 nike

因此请考虑以下因素:

<!-- ko foreach: new Array($root.totalPages()) -->
<!-- ko if: $index() + 1 === $root.currentPage() -->
<li class="active"><a href="#" data-bind="text: $index() + 1"></a></li>
<!-- /ko -->

<!-- ko if: $index() + 1 !== $root.currentPage() -->
<li><a href="#" data-bind="click: $root.navigateToPageNum.bind($index() + 1), text: $index() + 1"></a></li>
<!-- /ko -->
<!-- /ko -->

重要的部分是点击:$root.navigateToPageNum.bind($index() + 1), ...

问题是当我在所述函数中抛出 console.log 时,我得到了未定义。

    self.navigateToPageNum = function(pageNumber) {
console.log(pageNumber);
}

这使我在单击 li 链接元素时未定义。

totalPages() 为 7,因此页面上有 7 个 li 链接。但点击其中之一会给我未定义的信息。

如何将当前索引传递给函数?

最佳答案

first parameter of bindthisArg,因此当前页码将被设置为函数中的 this:

self.navigateToPageNum = function() {
console.log(this); // will print the page number
}

如果您想保留签名,则需要将 $index() + 1 作为第二个参数传递给 bind:

click: $root.navigateToPageNum.bind($data, $index() + 1)

注意:如果您不关心 navigateToPageNum 中的 this,您也可以将 null 作为第一个参数传递给 bind .

关于javascript - 尝试从单击 View 中将参数传递给 knockout 函数时出现问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37370165/

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