IPython 3 到 Jupyter 迁移,custom.js 和事件
IPython 3 to Jupyter migration, custom.js and events
在 IPython3 我的 'custom.js' 正在监听事件 :
$([IPython.events]).on("app_initialized.NotebookApp", function() { ... })
查看 this post 后,我正在监听 'notebook_loaded.Notebook' 事件。
require(['base/js/namespace', 'base/js/events'], function(IPython, events) {
events.on('notebook_loaded.Notebook', function() { ... });
});
但我使用 'app initialized' 事件来做一些事情,包括隐藏 header,即:
$('#header').hide()
现在,对于这个事件,它是隐藏的,但只是在短暂显示之后...
我认为在笔记本加载之前有一个事件,就像 IPython3 笔记本
我没有找到关于这些事件的任何文档..
在应用程序初始化时是否仍有任何事件触发?
谢谢,
由于某些原因,当您使用 require('base/js/events') 函数时,您无法监听 app_initialized.NotebookApp
事件。
如果您查看笔记本 static/notebook/js/main.js
代码,app_initialized.NotebookApp
事件仍会触发。
但是你必须使用 requireJS 中的 define() 函数来监听这个事件:
define([
'base/js/namespace',
'base/js/events'
], function(IPython, events) {
events.on('app_initialized.NotebookApp', function() {
// Your Code
});
});
此处将执行您的回调。
如果你输入 custom.js
:
require(['base/js/namespace', 'base/js/events'], function(IPython, events) {
events.on('notebook_loaded.Notebook', function() {
console.log('require & notebook_loaded.Notebook');
});
events.on('app_initialized.NotebookApp', function() {
console.log('require & app_initialized.NotebookApp');
});
});
define(['base/js/namespace', 'base/js/events'], function(IPython, events) {
events.on('notebook_loaded.Notebook', function() {
console.log('define & notebook_loaded.Notebook');
});
events.on('app_initialized.NotebookApp', function() {
console.log('define & app_initialized.NotebookApp');
});
});
控制台中的结果将是:
define() & app_initialized.NotebookApp
define() & notebook_loaded.Notebook
require() & notebook_loaded.Notebook
我想您使用 require()
注册了一个已经发生的事件...
require()
正在等待初始化所有依赖项和子模块...这对于 app_initialized.NotebookApp
事件来说可能为时已晚。
在 IPython3 我的 'custom.js' 正在监听事件 :
$([IPython.events]).on("app_initialized.NotebookApp", function() { ... })
查看 this post 后,我正在监听 'notebook_loaded.Notebook' 事件。
require(['base/js/namespace', 'base/js/events'], function(IPython, events) {
events.on('notebook_loaded.Notebook', function() { ... });
});
但我使用 'app initialized' 事件来做一些事情,包括隐藏 header,即:
$('#header').hide()
现在,对于这个事件,它是隐藏的,但只是在短暂显示之后... 我认为在笔记本加载之前有一个事件,就像 IPython3 笔记本
我没有找到关于这些事件的任何文档..
在应用程序初始化时是否仍有任何事件触发?
谢谢,
由于某些原因,当您使用 require('base/js/events') 函数时,您无法监听 app_initialized.NotebookApp
事件。
如果您查看笔记本 static/notebook/js/main.js
代码,app_initialized.NotebookApp
事件仍会触发。
但是你必须使用 requireJS 中的 define() 函数来监听这个事件:
define([
'base/js/namespace',
'base/js/events'
], function(IPython, events) {
events.on('app_initialized.NotebookApp', function() {
// Your Code
});
});
此处将执行您的回调。
如果你输入 custom.js
:
require(['base/js/namespace', 'base/js/events'], function(IPython, events) {
events.on('notebook_loaded.Notebook', function() {
console.log('require & notebook_loaded.Notebook');
});
events.on('app_initialized.NotebookApp', function() {
console.log('require & app_initialized.NotebookApp');
});
});
define(['base/js/namespace', 'base/js/events'], function(IPython, events) {
events.on('notebook_loaded.Notebook', function() {
console.log('define & notebook_loaded.Notebook');
});
events.on('app_initialized.NotebookApp', function() {
console.log('define & app_initialized.NotebookApp');
});
});
控制台中的结果将是:
define() & app_initialized.NotebookApp
define() & notebook_loaded.Notebook
require() & notebook_loaded.Notebook
我想您使用 require()
注册了一个已经发生的事件...
require()
正在等待初始化所有依赖项和子模块...这对于 app_initialized.NotebookApp
事件来说可能为时已晚。