在IPython3中我的' custom.js'正在听这个事件:
$([IPython.events]).on("app_initialized.NotebookApp", function() { ... })
在看了this post之后,我正在聆听笔记本电脑上的笔记本电子书'事件
require(['base/js/namespace', 'base/js/events'], function(IPython, events) {
events.on('notebook_loaded.Notebook', function() { ... });
});
但我正在使用' app初始化'事件做一些事情,包括隐藏标题,即:
$('#header').hide()
现在,有了这个事件,它隐藏起来,但是在短暂的展示之后...... 我认为在笔记本加载之前有一个事件,就像在IPython3笔记本中一样
我没有找到关于这些事件的任何文档..
在应用初始化时是否还有任何事件被触发?
谢谢,
答案 0 :(得分:2)
出于某种原因,当您使用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
事件来说可能为时已晚。