открыть URL в шаблоне списка полей отображения - PullRequest
0 голосов
/ 26 июня 2018

В примере, если я нажимаю на любой из элементов шаблона, происходит событие щелчка, и всегда открывается окно и загружается URL-адрес.

Мне нужно создать условие, чтобы выбрать только URL; и только при нажатии на 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;
                        }
                    });
                }
           }
         }
     }]

  });

FIDDLE: https://fiddle.sencha.com/#view/editor&fiddle/2ii0

1 Ответ

0 голосов
/ 27 июня 2018

Итак, я разбудил вашу скрипку и изменил функцию события click. Я беру содержимое элемента, по которому щелкнули, и проверяю, является ли это URL, вот FIDDLE

...