我在perRoundROI,perRoundROIWithCoverage
中有BarChartComponent
个方法,
如何与他人分享这两个功能?
换句话说,将两个方法移到更高级别,以便其他组件可以调用它。
如何重构它?
重构后如何调用2个方法
App.ToolsController = Ember.ArrayController.extend({
....
});
App.BarChartComponent = Ember.Component.extend({
perRoundROI:function(d){
return d.manualHours - d.autoHours;
},
perRoundROIWithCoverage:function(d){
return (d.coverageerage * d.manualHours) - d.autoHours;
},
get_tool_data: function(d, with_coverage){
call perRoundROI
call perRoundROIWithCoverage
},
...
});
答案 0 :(得分:1)
只需创建一个Ember.Mixin
。
每个需要其方法的人只是扩展它:
App.ROICalculator = Ember.Mixin.create({
perRoundROI: function(d) { /* code omitted */ },
perRoundROIWithCoverage: function(d) { /* code omitted */ }
});
App.ToolsController = Ember.ArrayController.extend(App.ROICalculator, {
/* code omitted */
});
App.BarChartComponent = Ember.Component.extend(App.ROICalculator, {
/* code omitted */
});