Reputation: 425
in IPython3 my 'custom.js' was listening for the event :
$([IPython.events]).on("app_initialized.NotebookApp", function() { ... })
After having a look at this post, I'm listening for the 'notebook_loaded.Notebook' event.
require(['base/js/namespace', 'base/js/events'], function(IPython, events) {
events.on('notebook_loaded.Notebook', function() { ... });
});
But I was using 'app initialized' event to do some stuff including hiding the header, ie:
$('#header').hide()
And now, with this event, it's hiding, but just after a short display... I think there is an event before notebook loaded, just like in IPython3 notebook
I didn't find any docs about those events..
Does it still have any event fired at the app initialization?
Thanks,
Upvotes: 2
Views: 697
Reputation: 425
For some reason, you can't listen on the app_initialized.NotebookApp
event when you use the require('base/js/events') function.
The app_initialized.NotebookApp
event is still fired if you look the notebook static/notebook/js/main.js
code.
but you have to listen at this event using the define() function from requireJS:
define([
'base/js/namespace',
'base/js/events'
], function(IPython, events) {
events.on('app_initialized.NotebookApp', function() {
// Your Code
});
});
Here your callback will be executed.
If you put in your 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');
});
});
The result in the console will be :
define() & app_initialized.NotebookApp
define() & notebook_loaded.Notebook
require() & notebook_loaded.Notebook
I guess that with the require()
you register to an event that had already happen...
require()
is waiting for all dependencies and submodules to be intialized... which might be too late for the app_initialized.NotebookApp
event.
Upvotes: 3