Ext.ux.Image:无法读取未定义的属性'dom'

时间:2012-05-29 11:02:43

标签: sencha-touch sencha-touch-2

我在Sencha中需要一个真实的<img> HTML标记。

我从官方文档中检索了这段代码:

Ext.define('Ext.ux.Image', {
    extend: 'Ext.Component', // subclass Ext.Component
    alias: 'widget.managedimage', // this component will have an xtype of 'managedimage'
    autoEl: {
        tag: 'img',
        src: Ext.BLANK_IMAGE_URL,
        cls: 'my-managed-image'
    },

    // Add custom processing to the onRender phase.
    // Add a ‘load’ listener to the element.
    onRender: function() {
        this.autoEl = Ext.apply({}, this.initialConfig, this.autoEl);
        this.callParent(arguments);
        this.el.on('load', this.onLoad, this);
    },

    onLoad: function() {
        this.fireEvent('load', this);
    },

    setSrc: function(src) {
        if (this.rendered) {
            this.el.dom.src = src;
        } else {
            this.src = src;
        }
    },

    getSrc: function(src) {
        return this.el.dom.src || this.src;
    }
});

当我尝试 setSrc 时,我收到此错误:无法读取未定义的属性'dom'

1 个答案:

答案 0 :(得分:2)

您的代码来自Ext.Js 4.x docs。你应该使用sencha touch 2 docs。 请比较: http://docs.sencha.com/ext-js/4-1/#!/api/Ext.Component

http://docs.sencha.com/touch/2-0/#!/api/Ext.Component

他们是不同的。

据我了解你需要真实的&lt; img&gt;在您的视图中标记。如果您使用Ext.Img,它将创建一个带有background-image的div容器。 我知道两种方式:

  1. 设置tpl和数据属性。
  2. Ext.create('Ext.Component', {
      config: {
        tpl: '',
        data: {
          url: 'http://example.com/pics/1.png',
          imgClass: 'my-class'
        }
      }
    });
    
    1. 设置html配置。
    2. Ext.create('Ext.Component', {
          config: {
          html: ' <img class="my-class" src="http://example.com/pics/1.png">'
          }
      });