请任何人都可以帮助我为 cytoscape js lib 创建渲染器扩展。
以下是它现在的工作方式:
let CanvasRenderer = cytoscape('renderer', 'canvas');
CanvasRenderer.prototype.drawPolygonPath = function(context, x, y, width, height, points) {
// my implementation goes here
}
正如它在cytoscape 网站上所说,它是一个可扩展的库!当我在我的项目中使用打字稿时,我想要这样的东西:
class MyRenderer {
constructor() {
}
}
cytoscape('renderer', 'myRenderer', MyRenderer);
这段代码显然会抛出 cytoscape 错误,说我没有实现一些方法......
然后我找到了一个扩展cytoscape-css-renderer,但它不适用于我的 cytoscape 版本(我使用的是 2.7.13)我也尝试解决类似于 cytoscape-css-renderer 的问题:
let CanvasRenderer = cytoscape('renderer', 'canvas');
class MyRenderer {
constructor(options) {
CanvasRenderer.call(options);
}
}
MyRenderer.prototype = Object.create(CanvasRenderer.prototype);
MyRenderer.prototype.constructor = MyRenderer;
$.extend(PricingRenderer, CanvasRenderer);
cytoscape('renderer', 'myRenderer', MyRenderer);
但它抛出了这个错误:
无法注册myRenderer
,renderer
因为clientFunctions
原型中已经存在并且不能被覆盖
所以有人可以帮我解决这个问题...谢谢!