试图创建一种在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的需要,该解决方案不适合太清楚了。
有谁知道如何解决这一问题?先感谢您。
编辑:修正了代码示例打字错误。
我怀疑你有你的选择问题:
cy.$('test')
这也许应该是两种:
cy.$('#test')
...如果你正在寻找通过它的ID的节点。要么:
cy.$('.test')
...如果你正在寻找由类节点。
欲了解更多关于选择:http://js.cytoscape.org/#selectors
在我的情况yarn
同时安装jQuery
的两个版本:2.x和3.x的
如果您遇到了同样的问题,解决的办法是容易 - 只需将此属性添加到您的package.json
。
"resolutions": {
"jquery": "2.2.4" //or whatever version that satisfies all requirements
}