我正在尝试创建一个包装javascript库的Ipywidget。
现在我遇到了一个问题,这使我陷入了一段时间。我在视图中导入了JavaScript库canvasXpress:Using React.lazy with TypeScript。看起来代码已加载。
但是当我尝试创建对象时,代码会运行,但是目标元素完全不受影响。
我发现这是给库一个错误的目标,但是该元素存在,即使我先创建目标元素,然后尝试在控制台中创建一个新对象也不会运行。
它应该查找元素并对其进行转换。我创建了一个独立的html网页来对其进行测试,如果我在该页面上导入了库并从控制台创建了元素,它就可以正常工作。
这里可能出什么问题了?
这是我在视图中加载的脚本:
var canvasjs = require('./canvasXpress.min-23.8.js')
var canvascss = require('./canvasXpress-23.8.css')
var widgets = require('@jupyter-widgets/base');
var _ = require('lodash');
我的观点:
var HelloView = widgets.DOMWidgetView.extend({
render: function() {
this.value_changed();
this.model.on('change:value', this.value_changed, this);
$(this.el).append("<div class='container'><canvas id='canvas' responsive='true'></canvas></div>")
},
value_changed: function() {
console.log('change', this.model.get('value'))
}
});
以前,我在视图中有新的CanvasXpress对象,但现在我只是尝试从Web控制台创建它。
new CanvasXpress('canvas', {y: {"smps":["Salihli","Tucapel","Sabadell"], "data":[[5,2,4]], "vars":["intval"]}, x: {"cities":["Salihli","Tucapel","Sabadell"]}, z: null}, false, false)