我试图将euroscipy2014教程(也是ipython cookbook的基础)移植到较新的ipywidget API。我按照我在相对ipython documentation上找到的指示成功转换了4个笔记本中的3个,但我在移植第3个笔记本时感到麻烦(03_custom.ipynb)。
我改变了js代码:
%%javascript
// We import the WidgetManager.
require(["widgets/js/widget"], function(WidgetManager){
// We define the NumberSelector view here.
var NumberSelector = widget.DOMWidgetView.extend({
// Function for rendering the view.
render: function(){
为:
%%javascript
// We import the WidgetManager.
require(["widget"], function(WidgetManager){
// We define the NumberSelector view here.
var NumberSelector = widget.DOMWidgetView.extend({
// Function for rendering the view.
render: function(){
使用require(["widget”] …
代替require(["widgets/js/widget …
和widget.DOMWidgetView.extend
代替IPython.DOMWidgetView.extend
但是当我在代码单元4上测试小部件时(我从js控制台登录):
Couldn't create a view for model id '8727d6f51f804c7aa582b3d95b3c630d' -- Error: Class NumberSelector not found in registry (…)
我猜js代码中的最后一行:
WidgetManager.register_widget_view('NumberSelector', NumberSelector);
没用。 (也许.register_widget_view
不再是有效的通话)。
你知道如何解决这个问题吗?谢谢!
我打开了一个问题here,但我认为这种API的抗议可能是一个普遍感兴趣的主题,所以我也在这里发布一个问题。