出于某种原因,你不能在app_initialized.NotebookApp
事件,当您使用要求(“基地/ JS /事件”)函数听。
如果你看笔记本static/notebook/js/main.js
代码,app_initialized.NotebookApp
事件仍然被解雇。
,但你必须用define()函数requireJS在此事件监听:
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()
正在等待所有依赖项和子模块被初始化......对于可能太晚了事件。