从knockout.contextmenu调用Javascript函数

Javascript function calls from knockout.contextmenu

本文关键字:Javascript 函数 调用 contextmenu knockout      更新时间:2023-09-26

我有以下HTML代码块。我想用击倒法。从knockout可观察对象中获得动态上下文菜单函数。

第一个<td>(具有上下文菜单的那个)给了我一个"未捕获的TypeError: string不是一个函数"。第二个<td>工作

(为了澄清,上下文菜单在第一个td中正确生成,当我单击其中一个选项时,它给了我未捕获的错误)

我不知道$parent之间有什么区别。第一个td中的selectLan和$parent。第二个td中的selectLan是。

我已经包含了相关的js和html代码。

任何帮助的人谁已经处理过这个之前将不胜感激!(参考,淘汰赛。上下文菜单在这里:https://github.com/nescalante/knockout.contextmenu)

HTML:

<tbody data-bind="foreach: lans">
<tr>
<td align="left" data-bind="text: name, contextMenu: { 'Node View': $parent.selectLan, 'Process View': $parent.selectLan }, bindMenuOnClick: true"></td>
<td align="left" data-bind="text: name, click: $parent.selectLan"></td>
</tr>
</tbody>

JS

 this.selectLan = function () {
        console.log("name");
        console.log("Selecting LAN: " + this.name());
        clickedLan = this.name();
        console.log("dynamicLanCount is : " + dynamicLanCount);

当前模型作为第一个参数传递给click处理程序:

this.selectLan = function (lan) {
        console.log("name");
        console.log("Selecting LAN: " + lan.name()); // <- lan instead of this
        clickedLan = lan.name();
        console.log("dynamicLanCount is : " + dynamicLanCount);