我试图在点击列表中的项目后动态检索网址。 目标是打开与clicked元素对应的html页面。
以下是使用的代码:
Ext.define('FirstApp.view.Details',{
extend:'Ext.Panel',
xtype:'details',
requires: ['Ext.Ajax'],
config: {
listeners: {
activate: 'onActivate'
},
url: 'MyHtml.html' // Work fine if statically
url: '{link}', // But this doesn't work dynamically
tpl:'<h1>{link}</h1>' // However the desired data is displayed right here
},
onActivate: function(me, container) {
Ext.Ajax.request({
url: this.getUrl(),
method: "GET",
success: function(response, request) {
me.setHtml(response.responseText);
},
failure: function(response, request) {
me.setHtml("failed -- response: " + response.responseText);
}
});
}
你知道吗?
在此先感谢您的帮助。
答案 0 :(得分:0)
{link}在tpl中工作,因为tpl属性像XTemplate一样处理字符串。您的(自定义)url属性只是像字符串一样处理。
{link}究竟来自哪里?由于您使用的是标准面板,我只能假设您使用此链接值在面板上设置数据属性。如果是这样,只需通过setUrl同时设置url。否则,在 updatedata 上添加一个监听器,这样无论何时模板数据发生更改,都会调用监听器并且您可以更新该URL。