TypeScript中的JsTree自定义上下文菜单
问题描述:
我尝试在我的TypeScript代码中为jQuery应用程序使用jstree控件。我使用jstree typings和jstree.directive来显示一棵树。当我需要处理菜单项点击并调用基本方法时,所有事情都能正常工作。在我的行动里面没有“this”(contextmenu)范围。有什么建议么?TypeScript中的JsTree自定义上下文菜单
class MapTreeViewController {
mapTreeView: JSTree;
vm.mapTreeView = $('#jstree').jstree(
{
'core': { 'data': items },
'plugins': ['themes', 'ui', 'contextmenu'],
'contextmenu': {
'items': function(node:any) {
var vmNode = this;
return {
'rename': { // rename menu item
'label': 'Rename',
'action': function(obj) {
this.rename(obj);
}
}
};
}
}
});
}
某个方法的内部。
答
this
是不是一个实例 - 看看原来的功能,以了解如何获得一个实例: https://github.com/vakata/jstree/blob/master/src/jstree.contextmenu.js#L84
"action" : function (data) {
var inst = $.jstree.reference(data.reference),
...
@Okazari,是错字是有,但“这个”反正为空并且没有用于空对象的方法。更进一步的“this”假设是一个contextmenu范围,它不是angular的视图$范围。 Angular的$范围没有“重命名”方法,但是“contextmenu”。 – Maxim
我想我们需要更多的代码来进行调查。其实这可能与角度无关。 – Okazari