在 Sench Touch List itemTpl 中使用成员函数
关于 List 的文档提到 itemTpl 遵循 XTemplate 语法。
我想在我的 itemTpl 中使用成员函数
如果我使用 XTemplate 初始化 itemTpl 并且该成员函数没有参数,它就可以工作:
items: {
xtype: 'list',
store: myStore,
itemTpl: new Ext.XTemplate('<i>{name} {[this.hello()]}</i>', {
hello: function () {
return 'Hello';
}
})
但是一旦我尝试传递一个参数(如下面的两个示例),它就不起作用不再:
items: {
xtype: 'list',
store: myStore,
itemTpl: new Ext.XTemplate('<i>{name} {[this.helloWorld(name)}</i>', {
helloWorld: function (name) {
return 'Hello ' + name;
}
})
items: {
xtype: 'list',
store: myStore,
itemTpl: new Ext.XTemplate('<i>{name} {name:helloWorld}</i>', {
helloWorld: function (string) {
return 'Hello ' + name;
}
})
TypeError: 'undefined' is not a function (evaluating 'fm.helloWorld(values['name'])')
我想我不应该创建一个新的 Ext.XTemplate 对象。有没有什么解决方案可以在不创建单独的 XTemplate 的情况下传递成员函数?
或者我应该放弃列表并在模板中自己构建列表?
The documentation about List mention that itemTpl follows the XTemplate syntax.
I would like to use member functions in my itemTpl
If I initialize itemTpl with an XTemplate and that the member function has no argument it works:
items: {
xtype: 'list',
store: myStore,
itemTpl: new Ext.XTemplate('<i>{name} {[this.hello()]}</i>', {
hello: function () {
return 'Hello';
}
})
But as soon as I try to pass an argument (like in the two examples below) it does not work anymore:
items: {
xtype: 'list',
store: myStore,
itemTpl: new Ext.XTemplate('<i>{name} {[this.helloWorld(name)}</i>', {
helloWorld: function (name) {
return 'Hello ' + name;
}
})
items: {
xtype: 'list',
store: myStore,
itemTpl: new Ext.XTemplate('<i>{name} {name:helloWorld}</i>', {
helloWorld: function (string) {
return 'Hello ' + name;
}
})
TypeError: 'undefined' is not a function (evaluating 'fm.helloWorld(values['name'])')
I guess I should not create a new Ext.XTemplate object. Is there any solution to pass the member functions without creating a separate XTemplate?
Or should I give up on the List and build the list myself in the template?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
以下代码应该可以工作:
您的第一个示例可以使用
values.name
而不仅仅是name
The following code should work:
your first example would work, with
values.name
instead of justname
使用
{[this.helloWorld(name)}
而不是
{[this.helloWorld(values.name)}
Use
{[this.helloWorld(name)}
instead of
{[this.helloWorld(values.name)}
这个用法也可以:
This usage is also ok: