Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/extjs/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
ExtJS:Xtemplate不';无法识别特殊字符,如/n/r_Extjs_Special Characters_Store_Record_Xtemplate - Fatal编程技术网

ExtJS:Xtemplate不';无法识别特殊字符,如/n/r

ExtJS:Xtemplate不';无法识别特殊字符,如/n/r,extjs,special-characters,store,record,xtemplate,Extjs,Special Characters,Store,Record,Xtemplate,我的商店记录有以下一些特殊字符 name: "Hi \r\n\r\n Location Name: Hello\r\n\r\n" 但当它显示在UI上(使用XTemplate)时,特殊字符不会显示,甚至不会应用。它们只是被丢弃了 //XTemplate var cars_template = new Ext.XTemplate( '<tpl =".">', '<div class="cars-item">', '<li>

我的商店记录有以下一些特殊字符

name: "Hi \r\n\r\n Location Name: Hello\r\n\r\n"
但当它显示在UI上(使用XTemplate)时,特殊字符不会显示,甚至不会应用。它们只是被丢弃了

//XTemplate

    var cars_template = new Ext.XTemplate(
'<tpl =".">',
'<div class="cars-item">',                 
'<li>',
'<span>Name: </span><span>{[this.updateHtml(values.name)]}</span>',
'</li>',
'</div></tpl>',
{
  updateHtml: function(value){
    if(value){
      value = value.replace(/(?:\r\n|\r|\n)/g, '<br/>');            
    }
    return value;
  }
}

); 
var cars\u template=new Ext.XTemplate(
'',
'',                 
“
  • ”, 'Name:{[this.updateHtml(values.Name)]}, “
  • ”, '', { updateHtml:函数(值){ 如果(值){ value=value.replace(/(?:\r\n |\r |\n)/g,“
    ”); } 返回值; } } );
    这是因为换行符不是html,它们需要以某种方式转换为html等价物

    因此,对于字符串,可以如下转换新行:

    var myString = 'Hi \r\n\r\n Location Name: Hello\r\n\r\n';
    myString = myString.replace(/(?:\r\n|\r|\n)/g, '<br/>');
    

    I
    console.log
    更改,这将用

    替换新行,谢谢@weeksdev,但是如何将其集成到示例中呢?请检查我更新的代码好吗?我甚至尝试用一些随机词替换\n\r,以确保替换正在进行,但不起作用--value=value.replace(/(?:\r\n | \r | \n)/g,“TEST”)@KavitaC添加了一个带有小提琴的extjs示例,演示了如何使用
    dataview
    。您上面的示例看起来不错,希望您能从工作示例中得出问题。@KavitaC可能是
    tpl
    元素
    中缺少的
    导致了您的问题?仅供参考
    Ext.util.Format.nl2br(string)
    var s = Ext.create('Ext.data.Store', {
                fields: ['name'],
                data: [{
                    name: "Hi \r\n\r\n Location Name: Hello\r\n\r\n"
                }, {
                    name: "Hi \r\n\r\n A Test Here: Another Test\r\n\r\n"
                }]
            });
            Ext.create('Ext.panel.Panel', {
                renderTo: Ext.getBody(),
                title: 'Example Replacement',
                layout: 'fit',
                items: [{
                    xtype:'dataview',
                    store: s,
                    tpl: [
                    '<tpl for=".">', 
                    '<div class="cars-item">', 
                    '<li>', 
                    '<span>Name: </span><span>{[this.updateHtml(values.name)]}</span>', 
                    '</li>', 
                    '</div>',
                    '</tpl>', 
                    {
                        updateHtml: function(value) {
                            console.log(value);
                            if (value) {
                                value = value.replace(/(?:\r\n|\r|\n)/g, '<br/>');
                            }
                            console.log(value);
                            return value;
                        }
                    }
                    ],
                    multiSelect: true,
                    height: 310,
                    trackOver: true,
                    itemSelector: '.cars-item',
                    emptyText: 'Nothing to display'
                }]
            });