gpt4 book ai didi

javascript - ItemTpl onclick函数调用extjs 6

转载 作者:行者123 更新时间:2023-12-03 04:59:19 26 4
gpt4 key购买 nike

如何在 dataview 上调用 onclick 函数,

itemTpl: [
'<a onClick="this.getViewController().somefunction({id},{code});" href="#">{code}</a><br/>',
]

在viewController中

somefunction: function(){
// some logic
}

给出的错误为

this.getViewController() is not a function

注意:我不想这样做 MyApp.app.getController()因为我有很多 ViewController,我无法将所有逻辑放入中央 Controller

最佳答案

如果您确实想在 itemTpl 中绑定(bind)点击函数,则需要指定模板中可访问的函数,如下所示:

// Save 'this' scope to me variable for use in XTemplate scope
var me = this;

// ...

itemTpl: [
'<a onClick="this.someFunction();" href="#">{code}</a><br/>',
// Defining funtions accessible in the XTemplate
{
someFunction: function() {
// Use 'me' here, because 'this' is XTemplate
me.getViewController().someFunction();
}
}
]

但如果可能的话,我会在该项目上使用点击监听器,如下所示:

// Save 'this' scope to me variable for use in the item scope
var me = this;

// ...

itemConfig: {
listeners: {
click: function() {
// Use 'me' here, because 'this' is the item
me.getViewController().someFunction();
}
}
}

我通常在 ExtJS 4 中工作,只是从 ExtJS 6 documentation 得到这个,所以请原谅我犯的任何错误并纠正我,以便我可以编辑答案。

关于javascript - ItemTpl onclick函数调用extjs 6,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42291521/

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