1

私は次の見解を持っています:

Ext.define("FI.view.InstallBaseList", {
extend: 'Ext.grid.Panel',
require: 'FI.store.InstallBaseStore',
title: 'List',

alias: 'widget.installBaseList',

icon:'table.png',

store:'FI.store.InstallBaseStore',

columns: [],

divId:'',
    dockedItems: [],
height: 200,
width: 700,
renderTo: "container",
enableLocking: true,
draggable: true,
resizable: true,

 initComponent: function(config){
         console.log("here");
    }
});

これが私がコントローラーからそれを作成しようとする方法です:

list = Ext.widget('installBaseList', params);

ブラウザで次のエラーが発生します:

me.dockedItems.insert is not a function
addDocked(items=[Object { xtype="header", title="List", titleAlign="left", more...}], pos=0)    ext-all-debug.js (line 47051)
updateHeader(force=undefined)    ext-all-debug.js (line 90398)
beforeRender()    ext-all-debug.js (line 90275)
getRenderTree()    ext-all-debug.js (line 26056)
render(container=Object { dom=div#container, id="container", $cache={...}, more...}, position=undefined)    ext-all-debug.js (line 26193)
constructor(config=Object { divId="container", columns=[0]})    ext-all-debug.js (line 44380)
callParent(args=[Object { divId="container", columns=[0]}])    ext-all-debug.js (line 3728)
constructor(config=Object { divId="container", columns=[0]})    ext-all-debug.js (line 56387)
constructor ()    ext-all-debug.js (line 3892)
widget(name="installBaseList", config=Object { divId="container", columns=[0]})    ext-all-debug.js (line 5083)
(?)()    ListCo...5323863 (line 98)


me.dockedItems.insert(pos + i, item);    ext-all-debug.js (line 47051)

さらに、このinitComponent方法では、config未定義のようです。なんで?

問題はどこにありますか?

4

1 に答える 1

4

親クラスの initComponent メソッドも確実に呼び出されるようにするために、initComponent メソッドには callParent への呼び出しが含まれている必要があります。

これが修正ですhttp://jsfiddle.net/nscrob/EcX3Q/11/

また、パラメーター構成を initComponent に送信する必要はありません。オブジェクト構成は既にコンポーネントに割り当てられており、これによってアクセスできます。Ext.create('...',{mode:add}); init コンポーネントには this.mode = add; があります。

于 2012-06-14T12:19:11.893 に答える