0

Web ページでいくつかのコンポーネントを作成すると、非常に多くの重複するコードが見つかりました。たとえば、ページで 2 つのチャートを作成したいのです。

それらの最大の違いはデータ ストアとタイトルですが、多くの同じ属性があります。

これを行うには、Ext.chart の新しいインスタンスを定義します。

var chart1=new Ext.chart.LineChart{config1};

var chart2=new Ext.chart.LineChart{config2};

config1 と config2 に同じ内容がたくさんありますが、これを避けるためのアイデアはありますか?

ところで、私は ext の拡張メカニズムを考えましたが、ext3.2 API からのみ使用方法の詳細を取得することはできません。

4

1 に答える 1

1

構成を拡張できます

var config = {
    // do you shared config here
}

// and apply any different/extending configs here
var config1 = Ext.apply(config, { title: "Title of config 1" }
var config2 = Ext.apply(config, { title: "Title of config 2" }

var chart1 = new Ext.chart.LineChart(config1);
var chart2 = new Ext.chart.LineChart(config2);

さらに短くしたい場合は、次のようにします。

var chart1 = new Ext.chart.LineChart(Ext.apply(config, {
    title: "Title of config 1"
});
var chart2 = new Ext.chart.LineChart(Ext.apply(config, {
    title: "Title of config 2"
});

編集: Ext.extendを使用:

Ext.chart.LineChart = Ext.extend(Ext.chart.LineChart, {
    // put your shared config in here
});

var chart1 = new Ext.chart.LineChart({
    title: "Title of chart 1", 
    store: new Ext.data.Store({ ... });
});
var chart2 = new Ext.chart.LineChart({
    title: "Title of chart 2", 
    store: new Ext.data.Store({ ... });
});
于 2010-10-10T12:35:59.357 に答える