我正在使用Aurelia和Kendo UI。我尝试了上下文菜单。我在从select调用函数时遇到问题。它无法找到该方法。有什么想法吗?
$("#menu").kendoContextMenu({
orientation: orientation,
target: "#listview-context-menu",
filter: ".product",
animation: {
open: { effects: "fadeIn" },
duration: 500
},
select: function (e) {
this.doAction(); // this function is not being recognized.
}
});
答案 0 :(得分:0)
在select
事件中调用时,this
关键字将引用kendoContextMenu
对象。 kendo小部件没有doAction函数,并且您提供的代码不会扩展kendo类以包含此类函数。
如果您保留对原始this
上下文的引用(假设doAction是在此级别定义的),则您需要在初始化kendoContextMenu
之前复制:
var originalThis = this;
$("#menu").kendoContextMenu({
orientation: orientation,
target: "#listview-context-menu",
filter: ".product",
animation: {
open: { effects: "fadeIn" },
duration: 500
},
select: function (e) {
originalThis.doAction();
}
});
但是,如果你想扩展kendoContextMenu的特定实例,你可以这样做:
$("#menu").kendoContextMenu({
//...
});
$("#menu").data("kendoContextMenu").doAction = function() {
alert("Action done");
}
请注意,如果doAction
为每个kendoContextMenu对象生成,您还可以扩展kendo原型。