Sencha Touch:显示数据库中的图像

Posted

技术标签:

【中文标题】Sencha Touch:显示数据库中的图像【英文标题】:Sencha Touch: Display Image from Database 【发布时间】:2013-07-26 12:47:30 【问题描述】:

我是 Sencha Touch 的新手,我正在尝试在视图中显示图像。图像的来源来自我模型的一个字段,采用 base64 字符串格式。我需要将此字段分配给图像 src。当我尝试在图像中设置静态 base 64 内容时,它工作正常,但是当我尝试通过分配字段动态分配时,视图为空白。

请看下面的代码

基于图像 base64 的内容将出现在“附件”字段中

我的查看代码

 Ext.define('TechHelp.view.ViewAttachment',
            
                xtype : 'viewattachment',
                  extend : "Ext.form.Panel",
                requires :"Ext.form.FieldSet" ,

      config : 
                    //stylehtmlContent : true,
                    scrollable : 'vertical',
                    title : 'Attachments',
    items : [
        xtype : "image",
       name : 'attachment',
       src: 'data:image/jpeg;base64,'+'Attachment',
           height:'100px',
       width: '100px'
, ]
 ,

 );

我的模型代码

Ext.define('TechHelp.model.Attachment', 扩展:'Ext.data.Model',

config: 
    // define the fields. the default type is string

    fields:// ['customerId','FirstName'],
          [name:'AttachmentId',
           name:'TicketId',
           name:'Attachment',
           name:'FileName',
           ],

,

);

请帮忙。

【问题讨论】:

我对此感到非常困惑。要使用模型,您需要一个我在您的代码中没有看到的商店。此外,图像不是您可以附加商店的对象,因此您采用的方法甚至都行不通。如果您将所有 base64 数据存储在存储中,则必须提取确切的记录并使用函数将值推入。 【参考方案1】:

您可能应该为视图设置数据,然后使用 tpl 打印值:

控制器:

var itemView = Ext.create('TechHelp.view.ViewAttachment');
itemView.setRecord(record);

查看:

config : 
    scrollable : 'vertical',
    title : 'Attachments',
    tpl: '<img src="data:image/jpeg;base64,Attachment" />'
    ....
,

updateRecord: function(record) 
    if (record) this.setData(record.data);

希望对你有帮助-

【讨论】:

以上是关于Sencha Touch:显示数据库中的图像的主要内容,如果未能解决你的问题,请参考以下文章

来自 JSON 商店的 Sencha Touch Carousel

Sencha touch 中的网格视图数据格式

在 NestedList-Sencha Touch 2 中的文本附近添加图像

如何从 SenCha Touch 中的商店检索数据

如何阻止 iOS 启动图像在 Phonegap / Sencha Touch 中向上移动

在 Sencha Touch 中禁用 loadMask 的灰色背景