2012-04-20 54 views
3

这是ExtJS的形状类如何将方法添加到ExtJS4中的单例中?

Ext.define('Ext.chart.Shape', { 

    singleton: true, 

    circle: function (surface, opts) { 
     return surface.add(Ext.apply({ 
      type: 'circle', 
      x: opts.x, 
      y: opts.y, 
      stroke: null, 
      radius: opts.radius 
     }, opts)); 
    }, 
    ... 
}); 

我想一个方法添加到这个类。例如:

myCircle: function (surface, opts) { 
     return ... 
}, 

我该怎么做?

+0

使用4.1或4.0.x? – 2012-04-20 08:44:24

+0

现在4.0.7。有什么区别? – Natasha 2012-04-20 08:47:24

+0

适用于4.1以及 – 2013-01-29 14:30:51

回答

3

我找到了答案。这是如果有人需要它的解决方案:

Ext.define('MyShape', { 
    override: 'Ext.chart.Shape', 

    initialize: function() { 
     this.callOverridden(arguments); 
    }, 

    myCircle: function (surface, opts) { 
     return ... 
    } 
}); 
2

您可以扩展以添加新功能或覆盖以更改类上现有功能的行为。以下链接详细介绍了sencha文档解释如何使用它们。

Extend

Override

样品实现延长:

Ext.define('yourCustomClassHere', { 
    extend: 'Ext.chart.Shape', 
    newFunctionName: function() { 
     //your function here 
    } 
}); 
+0

谢谢。你能为我提供一个例子吗?因为我在尝试使用它们时遇到了不同的错误。 – Natasha 2012-04-20 10:52:10

+0

什么错误?我链接到的文档已经包含示例。 – Amalea 2012-04-20 11:01:24

+0

我不想延长它。我只是想向Shape类添加另一种方法。当我想重写它-Ext.chart.Shape.override({}) - 我得到这个错误:“Ext.chart.Shape.override不是一个函数” – Natasha 2012-04-20 11:53:25

相关问题