来自knockout.contextmenu

时间:2016-09-27 12:34:30

标签: javascript jquery html knockout.js

我有以下大量的HTML代码。我试图使用knockout.contextmenu从knockout observables获得动态上下文菜单函数。

第一个<td>(带有上下文菜单的那个)给了我一个“未捕获的TypeError:字符串不是函数”。 第二个<td>有效。

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

我无法弄清楚第一个td中的$ parent.selectLan与第二个td中的$ parent.selectLan之间的区别是什么。

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

之前处理过这个问题的人的任何帮助都将不胜感激! (作为参考,knockout.contextmenu在这里: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);

1 个答案:

答案 0 :(得分:0)

当前模型作为点击处理程序的第一个参数传递:

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);