gpt4 book ai didi

javascript - sencha/javascript - 如何从 tpl 模板中调用函数

转载 作者:塔克拉玛干 更新时间:2023-11-02 21:57:49 24 4
gpt4 key购买 nike

我正在使用 Sencha touch,我正在尝试修改我在网上找到的一个 Twitter 示例,以便将来自 Twitter 提要的 URL 转换为可点击的链接。我看到 sencha touch 库中的一个示例使用了 linkify 功能,但我不知道如何将它合并到我自己的项目中。这是我的代码:

t_news = new Ext.Component({
cls:'t_news',
title:'News',
scroll: 'vertical',
tpl: [
'<tpl for=".">',
'<div class="tweet">',
'<div class="avatar"><img src="{profile_image_url}" /></div>',
'<div class="tweet-content">',
'<h2>{from_user}</h2>',
'<p>{text:this.linkify}</p>',
'</div>',
'</div>',
'</tpl>',
]
});

function linkify(value){
return value.replace(/(http:\/\/[^\s]*)/g, "<a target=\"_blank\" href=\"$1\">$1</a>");
}

这是错误:

Uncaught TypeError: Object [object Object] has no method 'linkify'

最佳答案

如果您显式声明您的 XTemplate,您可以使用最后一个构造函数参数,它接受一个配置对象,您可以在其中指定模板函数。可以使用 value:function 语法调用这些函数。

您的代码将变成:

t_news = new Ext.Component({
cls:'t_news',
title:'News',
scroll: 'vertical',
tpl: new Ext.XTemplate(
'<tpl for=".">',
'<div class="tweet">',
'<div class="avatar"><img src="{profile_image_url}" /></div>',
'<div class="tweet-content">',
'<h2>{from_user}</h2>',
'<p>{text:this.linkify}</p>',
'</div>',
'</div>',
'</tpl>',
{
linkify: function(value){
return value.replace(/(http:\/\/[^\s]*)/g, "$1");
}
})
});

这些函数在 XTemplate 的范围内执行,也可以在 tpl 标记内或在方括号表示法中调用:

'<tpl if="this.linkify(values.text) == \'some text\'">',
'</tpl>'

'<p>{[this.linkify(values.text)]}</p>'

关于javascript - sencha/javascript - 如何从 tpl 模板中调用函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6390845/

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