gpt4 book ai didi

javascript - 自定义 onclick 函数作为 Knockout SimpleGrid 中的属性

转载 作者:行者123 更新时间:2023-11-28 09:11:49 25 4
gpt4 key购买 nike

我想将数据中的值显示为链接,并将自定义函数传递给其点击事件(最终将显示带有状态历史记录的模式)。

我有属性“isLink”( bool 值)和“onClick”(函数),如下所示:

    { headerText: "ColumnName"
, rowText: function (item) { return item.Product.ProductID.toString(); }
, isLink: true
, onClick: function (item) { alert(item.Product.ProductID.toString()); }
}

在“ko_simpleGrid_grid”模板中,我有以下内容:

    ...
<a data-bind=\"attr: { href: 'javascript:void()' }, click: $data.onClick, text: rowText($parent) \" />
...

单击后,警报为“未定义”。如果我输入:

    ...
, onClick: function () { alert("test"); }
...

然后警报显示“test”。

所以我想我的问题是,如何从该函数访问数据?

编辑/更新

我能够让它工作。绑定(bind)文档的链接有帮助。这是工作代码:

    ...
, onClick: function() { alert(this.Product.ProductID.toString()); }
...

在 simpleGrid 插件中:

    ...
<a data-bind=\"click: $data.onClick.bind($parent), text: rowText($parent) \" />
...

感谢您的帮助!

最佳答案

您必须使用bind有效地将您想要的任何参数附加到函数调用中。

在您的示例中,它应该按以下方式工作:

<a data-bind=\"click: $data.onClick.bind($data, param1), text: rowText($parent) \" />

绑定(bind)函数的第一个参数是“onClick”函数中的上下文。我选择“data”,这意味着在“onClick”中 $data 的所有属性都将可用。

您可以添加任意数量的参数。

最后一点:我建议删除 href 属性,它不是必需的,也不会完成任何事情。

关于javascript - 自定义 onclick 函数作为 Knockout SimpleGrid 中的属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16219231/

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