2010-10-10 5 views
0

Когда я делаю некоторые компоненты на своей веб-странице, я обнаружил там много дубликатов кодов, например, на моей странице я хочу сделать две диаграммы.повторное использование кодов javascript (уменьшить дубликаты кодов)

Большая разница между ними - хранилище данных и название, однако они имеют много одинаковых атрибутов.

Я это, определить новый экземпляр Ext.chart:

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

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

Есть так много же содержания в config1 и config2, есть какие-либо идеи, чтобы избежать этого?

BTW, я думал, что механизм расширения в ext, однако я не могу получить более подробную информацию о том, как использовать его только из API ext3.2.

ответ

1

Вы можете расширить CONFIG

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" 
}); 

Edit: С 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({ ... }); 
}); 
+0

Спасибо, это хорошие манеры. Также я хочу знать, может ли это быть реализовано механизмом расширения? – hguser

+0

Да, вы можете. Вы уже можете поместить все конфигурации по умолчанию в LineChart уже, а затем только перезаписать измененные – Tseng

Смежные вопросы