与可乐的cytoscape.js似乎不再工作

时间:2015-06-17 07:09:31

标签: cytoscape.js cytoscape

我正在使用最新的可乐尝试最新的cytoscape,我收到以下错误:

未捕获的TypeError:cola.adaptor不是函数

用于cytoscape.js代码段:

   var adaptor = layout.adaptor = cola.adaptor({
    trigger: function( e ){ // on sim event
      switch( e.type ){
        case 'tick':
          if( options.animate ){

API改变了Cola吗?

3 个答案:

答案 0 :(得分:2)

尝试按the docs建议(React / Browserify / ES6 / npm)时仍然出现此错误:

import cytoscape from 'cytoscape';
import cycola from 'cytoscape-cola';
import cola from 'webcola';

cycola(cytoscape, cola);

但是,在看到this issue并在我的索引文件的<head>中加入cola v3 script后,我才能使其正常工作。

最后,我必须这样做:

cycola(cytoscape, window.cola); // since cola now lives in window

答案 1 :(得分:1)

可乐现在拥有良好的npm和版本支持,因此如果您遇到问题,可以轻松尝试不同版本的可乐。

我还向Cola提出了拉取请求,因此他们在Typescript中有一个专用的父类,通用适配器。 PR已经合并 ​​- 所以它应该得到很好的支持。 (Cola中的前一个适配器是一个JS,它显然不适合TS中的经典继承模型。)

-

旧答案:

Cola还没有支持语义版本控制,它在包管理器中不受支持。对Cola的更新会定期破坏API的兼容性,并且在未来的主要版本发布之前,不能为Cola的更新版本重写Cytoscape.js方面。

如果您想保证兼容性,请在下载ZIP for Cytoscape.js中使用附带的Cola版本。

你可能还想向Cola提出一个问题,因为在这种情况下肯定会出现问题而Cytoscape.js无法修复:https://github.com/tgdwyer/WebCola/issues

答案 2 :(得分:-1)

如果您使用webpack进行构建应用程序,则可以导入:

import cola from 'exports?cola!webcola/WebCola/cola';

这对我有用:)