私のアプリケーションは昨年ほど成長しています。そして、ついには既存のコンポーネントを拡張して共通のコンポーネントを分割し始めました。私はこれが本当に有益であることを発見しました。開発とメンテナンスのスピードが増しました。私の問題は、自分のコンポーネントでカスタムパラメータを使うという概念を理解しておらず、次の例で誰かが助けてくれることを期待していたことです。具体的に私はinitComponent機能で宣言されたプロキシ内のカスタムパラメータ(myCustomParam)にアクセスすることはできていないようです:ExtJSコンポーネントでカスタム属性を使用する
MyEmployeeGrid = Ext.extend(Ext.grid.GridPanel, {
myCustomParam: "CompanyX",
initComponent:function() {
//Store Reader
var myReader = new Ext.data.JsonReader({
root : 'objectsToConvertToRecords',
idProperty: 'id',
fields : [
{name: 'id'},
{name: 'employee', allowBlank:false},
{name: 'department', allowBlank:false}
]
});
//Store Proxy
var dwrProxy = new Ext.ux.data.DwrProxy({
apiActionToHandlerMap : {
read : {
dwrFunction : EmployeeService.readCompanyEmployees,
getDwrArgsFunction: function(request, recordDataArray, oldRecordDataArray) {
return [myCustomParam];
}
}
}
});
//Setup Params for the grid
Ext.apply(this, {
store: new Ext.data.Store({
proxy: dwrProxy,
reader: myReader,
autoLoad : true,
autoSave: true
}),
columns: [{header: "Employee", dataIndex: 'employee'},
{header: "Department", dataIndex: 'department'}]
});
MyEmployeeGrid.superclass.initComponent.apply(this, arguments);
} // eo function initComponent
,onRender:function() {
MyEmployeeGrid.superclass.onRender.apply(this, arguments);
} // eo function onRender
});
Ext.reg('myemployeegrid', MyEmployeeGrid);
こんにちはロブ、あなたのポストに感謝。これは、グリッドを作成するときにmyCustomParamを変更できないことを意味しますか?グリッドを宣言するときにmyCustomParamを変更するため、各会社のMyEmployeeGridのインスタンスを作成する必要があります。 – James
こんにちはJamesさん、コードを少し変更しました。間違っていると、変数宣言の前に 'this'は必要ありませんでした。上記を使用することで、インスタンスの初期化中に変数にデフォルト値を設定し、カスタム変数でその変数をオーバーライドすることができます。希望、それは助けて、私に知らせてください –