5

我正在使用最新的可乐尝试最新的 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 是否发生了变化?

4

3 回答 3

2

尝试按照文档建议(React/Browserify/ES6/npm)进行操作时,我仍然会收到此错误:

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

cycola(cytoscape, cola);

但是,在看到此问题并将colav3 脚本包含在<head>我的索引文件中后,我能够使其工作。

最后,我不得不这样做:

cycola(cytoscape, window.cola); // since cola now lives in window
于 2016-05-17T18:12:55.467 回答
1

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

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

--

老答案:

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

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

您可能还想向 Cola 提出问题,因为这种情况下的问题肯定在那边,并且 Cytoscape.js 无法在没有修复的情况下运行:https ://github.com/tgdwyer/WebCola/issues

于 2015-07-06T16:08:53.767 回答
-1

cola import 如果您使用 webpack 构建应用程序:

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

这对我有用:)

于 2016-10-20T16:10:06.880 回答