覆盖Sencha Touch类

伊娜

我正在使用Sencha Touch应用程序,并且对此代码有下一个疑问/问题。

Ext.each(records, function(record){
            newItem = Ext.create('Ext.Panel', {
                material: record.get('material'),
                cls: 'setitems-item',
                tpl: '<div class="setitems-item-material">{material}</div>' +
                '<div class="setitems-item-atpstatus {atpstatus}">{cquantity}</div>' +
                '<div class="setitems-item-cdd">{[Cicero.Helper.formatSAPdate2Str(values.cdd)]}</div>' +
                '<div class="setitems-item-netprice">{netprice}</div>' +
                '<div class="setitems-item-netvalue">{netvalue}</div>',
                items: [
                    {
                        xtype: 'button',
                        text: Cicero.Text.getText('SC_I_CONDITIONS_BTN'),
                        itemId: 'setItemConditions',
                        cls:'setConditions'
                    }
                ],
                data: record.getData()
            });
            newSetItems.push(newItem);
        }, this);

并且此代码管理从控制器为每个模式窗口创建的按钮。

manageSetItemConditions: function (button) {
    var matId = button.up('panel'),
    //var matId = button.up('panel').material,
        recordId = button.up('cartItem').getRecordId(),
        record = Ext.getStore('CartItems').getById(recordId),
        conditionsStore = record.setitems().findRecord('material', matId).conditions(),
        orderTypeConditionsStore = this.getCartHeader().down('#headerOrderType').getRecord().sconditions(),
        view = Ext.create('xx.view.cart.Conditions', {
            orderTypeConditionsStore: orderTypeConditionsStore
        });
    //view.setRecordId(record.getId());//TODO: mirar si es necesario
    view.down('dataview').setStore(conditionsStore);
    view.showBy(button);
},

在这里,您可以看到属性“ material”,但这不是Sencha类中包含的属性,如何在Panel类中添加此新的config属性(在这种情况下)?

我是否需要覆盖面板类?

该代码在localhost中运行,但在Sencha CMD的生产构建(命令行)之后无法运行,因为该类中不包含材料属性。

谢谢!!

亚历山大大帝

在查看Sencha Touch代码时,我认为您将必须添加material到面板的eventedConfig属性中,因为设置器的设置如下touch/src/Evented.js

for (name in eventedConfig) {
    if (eventedConfig.hasOwnProperty(name)) {
        nameMap = ExtClass.getConfigNameMap(name);
        data[nameMap.set] = this.generateSetter(nameMap);
    }
}

您不能影响eventedConfigExt.create中属性,必须为此定义一个覆盖,这会影响所有面板:

Ext.define('MyApp.override.Panel',{
    override: 'Ext.panel.Panel',
    constructor:function() {
        this.callParent(arguments);
        this.eventedConfig.material = "SomeDefaultValue";
    }
});

或定义派生类并使用该类:

Ext.define('MyApp.ux.Panel',{
    extend: 'Ext.panel.Panel',
    xtype: 'mypanel',
    constructor:function() {
        this.callParent(arguments);
        this.eventedConfig.material = "SomeDefaultValue";
    }
});

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

Sencha Touch:使用Ext.define()声明类

来自分类Dev

Sencha Touch中MessageBox类中的不同语言

来自分类Dev

Sencha Touch 2:如何获取(多个)基类的实例

来自分类Dev

Sencha Touch 2.3.1 iframe

来自分类Dev

Sencha Touch条件编译

来自分类Dev

代码辅助-Sencha Touch

来自分类Dev

Sencha touch中的onkeydown

来自分类Dev

sencha touch:实时图表

来自分类Dev

使用商店数据的Sencha图表-Sencha touch

来自分类Dev

Sencha Touch Architect中的验证

来自分类Dev

Sencha Touch over jQuery Mobile

来自分类Dev

在Sencha Touch中管理CSS

来自分类Dev

getStore(); undefined Sencha Touch 2

来自分类Dev

获取Sencha Touch平台名称

来自分类Dev

Sencha touch中的点击事件

来自分类Dev

推送通知Sencha Touch 2

来自分类Dev

在sencha touch中搜索字段

来自分类Dev

Sencha Touch NestedList-从右到左

来自分类Dev

Sencha Touch中的后退功能

来自分类Dev

Sencha Touch入门教程?

来自分类Dev

在Sencha Touch中管理CSS

来自分类Dev

Sencha Touch无法打开相机

来自分类Dev

SENCHA TOUCH动态休息Api

来自分类Dev

编译Sencha Touch 2.4和sencha-compass的问题

来自分类Dev

无法从appdelegate的handleOpenURL调用sencha touch功能

来自分类Dev

Sencha Touch添加更新树存储数据

来自分类Dev

getStore(); 未定义的Sencha Touch 2

来自分类Dev

数组作为sencha touch中的列表存储

来自分类Dev

sencha touch同步存储性能问题