2016-07-26 97 views
1

当我尝试在AngularJS指令中为cytoscape节点创建qtip工具提示时遇到错误消息Uncaught TypeError: qtip.$domEle.qtip is not a function

我的代码如下所示:

function graphDirective() { 
    return { 
    restrict: 'E', 
    templateUrl: 'app/graph/graph.html', 
    link() { 
     const cytoscape = require('cytoscape'); 
     const jquery = require('jquery'); 
     const cyqtip = require('cytoscape-qtip'); 
     cyqtip(cytoscape, jquery); 

     const cy = cytoscape({ 
     container: document.querySelector('graph #cy') 
     }); 

     cy.add({ 
     nodes: [ 
      { 
      data: { 
       id: 'test' 
      } 
      } 
     ] 
     }); 

     cy.$('#test').qtip({ 
     content: 'Hello!' 
     style: { 
      classes: 'qtip-bootstrap' 
     }); 
    } 
    }; 
} 

export default graphDirective; 

我已经通过了this quite similar thread,但jQuery是前cytoscape.js-qtip通过CommonJS的需要,该解决方案不适合太清楚了。

有谁知道如何解决这个问题?先谢谢你。

编辑:代码示例中修复了键入错误。

+1

有没有足够的信息在这里重现该问题。尝试在没有Angular的简单设置中再现您的问题,并/或创建一个完整的运行示例,以Jsbin或Codepen等方式重现您的问题。如果您可以在完整示例中重现问题并且问题不属于您自己的问题,请在扩展的问题跟踪器 – maxkfranz

回答

0

我怀疑你有你的选择问题:

cy.$('test') 

这也许应该是两种:

cy.$('#test') 

...如果你正在寻找一个节点通过它的ID。或者:

cy.$('.test') 

...如果您正在按类查找节点。

更多关于选择:http://js.cytoscape.org/#selectors

+0

感谢您的回答,这只是在推广代码示例时出现了打字错误,因此错误仍然存​​在。你有其他想法吗? – kingmarv

+0

我可以看看你是否在JSBin等上发布了一个运行的例子。 – peteorpeter