在该示例中,如果我单击任何模板项,则会触发click事件,并始终打开一个窗口并加载url。
我需要建立一个条件以仅选择URL;并且只有在单击url时,窗口才打开并加载de url。
var cars = 'car - Fiat, country - Italy, site - https://www.sencha.com/';
Ext.create('Ext.form.Panel', {
renderTo: Ext.getBody(),
width: 450,
height: 200,
bodyPadding: 10,
title: 'Template',
items: [{
xtype: 'displayfield',
fieldLabel: 'Cars',
name: 'cars',
renderer: function (value, field) {
if (value && value.indexOf(',') > -1) {
this.rndTpl = this.rndTpl || new Ext.XTemplate('<div style = "line-height: 150%;' +
'margin-left: -25px; margin-top: -12px; cursor: pointer;">' +
'<ul><li>{[values.cars.replace(/,/g, "<li/>")]}</li></ul>' +
'</div>');
return this.rndTpl.apply({
cars: value
});
} else {
return value;
}
},
listeners: {
render: function(field, eOpts) {
field.setValue('car - Fiat, country - Italy, site - https://www.sencha.com/')
},
change: function(field){
var stringValues = field.value;
if(stringValues && (stringValues !== '' || stringValues !== null)){
var arrayValues = stringValues.split(',');
arrayValues.map(function(item){
var typeValue = item.indexOf('site');
if(typeValue > -1){
var value = item.substring(item.indexOf('-') + 1);
field.getEl().on('click', function () {
window.open(value, '', false);
});
}else{
return false;
}
});
}
}
}
}]
});