0

ExtJS4が構成オブジェクトをどのように渡すかを理解しようとしています。同等のことをしたい...

store  = function(config){
    if ( typeof config.call !== 'unndefined' ){
        config.url = "server.php?c=" + config.call || config.url;       
    };  
    Sketch.Data.AutoSaveStore.superclass.constructor.call(this,config);
};
Ext.extend(store, Ext.data.Store{})    

私はおそらくここで明らかな何かを見逃していますが、サンドボックスファイルを掘り下げて、私が来た最も近いものは...です。

 Ext.define('My.awesome.Class', {
     // what i would like to pass.
     config:{},
     constructor: function(config) {
         this.initConfig(config);
         return this;
     }
 });

あなたが次のようなことをすると、これはうまくいかないようです...

var awesome = Ext.create('My.awesome.Class',{
    name="Super awesome"
});  
alert(awesome.getName()); // 'awesome.getName is not a function'

でも

  Ext.define('My.awesome.Class', {
     // The default config
     config: {
         name: 'Awesome',
         isAwesome: true
     },
     constructor: function(config) {
         this.initConfig(config);
         return this;
     }
 });

var awesome = Ext.create('My.awesome.Class',{
    name="Super awesome"
});  
alert(awesome.getName()); // 'Super Awesome'

複雑な店舗拡張を行おうとすると、これは後部で私を噛みます。たくさんのランダムなパラメータをプロトタイプに渡す方法を知っている人はいますか?

4

1 に答える 1

5

クラスに新しいインスタンスを作成するためにnew演算子を使用しないでください。ExtJS4では、Ext.create()メソッドを使用する必要があります。

やってみてください:

var awesome = Ext.create('My.awesome.Class');
alert(awesome.getName());

また、インスタンスの作成時にパラメータを渡したい場合は、次のようにすることができます

var awesome = Ext.create('My.awesome.Class',{name:'New Awesome'});
于 2011-05-24T09:32:20.480 に答える