簡體   English   中英

如何在extjs中將args傳遞給構造函數?

[英]how to get args to constructor at extjs?

我上課

AddOrgWindowUI = Ext.extend(Ext.Window, {
title: 'form',
width: 400,
height: 198,
layout: 'form',
padding: 5,
initComponent: function() {
    this.items = [
        {
            xtype: 'textfield',
            fieldLabel: 'parapapa',
            anchor: '95%',
            value: m,
            emptyText: 'perapapa'
        }
    ];
    AddOrgWindowUI.superclass.initComponent.call(this);
}});

當我創建一個對象時var AddOrgWindowForm = new AddOrgWindowUI('aaa'); 我想將arg('aaa')設置為新的表單值(值m)。 怎么得到的? 我正在嘗試initComponent: function(m) {而那是行不通的。

Ext.Window的基類之一上內部調用initComponent函數。 您不應該嘗試直接調用它。 這就是為什么它不會處理您自己的參數的原因。

因此,我建議您在擴展ExtJS類時使用標准格式參數。

就像使用要覆蓋的屬性或方法初始化對象一樣簡單(或在屬性不存在的情況下插入)。 然后只需使用this關鍵字即可訪問它們。

這是可能的,因為對於每個Ext.Component及其子類,傳遞給構造函數的第一個參數應該是一個對象,並且該對象中的每個成員都將被復制到構造的新對象中。 大多數ExtJS類都直接或間接地從Ext.Component擴展,而您也從Ext.Window擴展,而Ext.Window也從Ext.Component擴展。

在這里,您已修復示例:

var AddOrgWindowUI = Ext.extend(Ext.Window, {
    title: 'form',
    width: 400,
    height: 198,
    layout: 'form',
    padding: 5,

    initComponent: function() {
        this.items = [
            {
                xtype: 'textfield',
                fieldLabel: 'parapapa',
                anchor: '95%',
                value: this.initialValue,
                emptyText: 'perapapa'
            }
        ];
        AddOrgWindowUI.superclass.initComponent.call(this);
    }
});

function test() {
    var AddOrgWindowForm = new AddOrgWindowUI({initialValue:'aaa'});
    AddOrgWindowForm.show();
}

將m作為initComponent的arg傳遞:

編輯:

AddOrgWindowUI = function(input) {
    var m = input;
    return Ext.extend(Ext.Window, {
        title: 'form',
        width: 400,
        height: 198,
        layout: 'form',
        padding: 5,
        initComponent: function() {
            this.items = [
        {
            xtype: 'textfield',
            fieldLabel: 'parapapa',
            anchor: '95%',
            value: m,
            emptyText: 'perapapa'
        }
    ];
            AddOrgWindowUI.superclass.initComponent.call(this);
        }
    });
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM