[IPython-dev] widget models caching the view

Brian Granger ellisonbg at gmail.com
Sat Feb 22 22:40:17 EST 2014


Boarding a plane...

Sent from my iPhone

> On Feb 22, 2014, at 7:19 PM, Jason Grout <jason-sage at creativetrax.com> wrote:
> 
>> On 2/22/14 8:58 PM, Brian Granger wrote:
>> Hi, sorry, just catching up. I am confused. I don't see how this is
>> even possible. In browsers/DOM it is not possible to have a single DOM
>> element displayed in multiple places on the page. Isn't that what this
>> change tries to do? If it does work, I am guessing that it is broken -
>> surely the events won't fire properly when the view is on the page
>> multiple times.
> 
> But widget views !== dom elements.  For my usecase, for example, widget 
> views are Three.js objects.  And you can certainly have the same 
> three.js object in multiple places in the scene graph.  For example, I 
> want the same geometry object with several different kinds of material.
> 

They way backbone traditionally works - for dom based views - is that the do map one-to-one with those dom elements. They even have a $el attribute that points to the dom element on the page. I understand that not all views use this, but we can't break it for the many views that do use it.

> 
>> Conceptually, I think we *do* want multiple views. Each view maps onto
>> one place in the page where the widget is displayed. Each of those
>> instances needs to be able to handle its own events, etc. For example,
>> only one instance of the view can have focus at a time or accept
>> keyboard input.
>> 
>> Am I missing something?
> 
> I thought we were transitioning to having multiple widgets for display 
> in different places that were linked together.  The "view" is really the 
> python instance+backbone model+backbone view.  If you want a widget in 
> multiple places, create multiple widgets and link them together.  The 
> model is simpler.  If you want multiple views in javascript for the same 
> model/python instance, then you really probably ought to expose those 
> views on the python side with full python view classes.
> 

That transition was not away from multiple views in general. That is and must be fully supported. What we did move away from is a single model with multiple *different* views - like a slider and text box attached to the same model. The word multiple is a bit vague - I use it to mean an instances of the same view class attached to one model but shown in different places on the page - typically different cells

> Thanks,
> 
> Jason
> 
> _______________________________________________
> IPython-dev mailing list
> IPython-dev at scipy.org
> http://mail.scipy.org/mailman/listinfo/ipython-dev



More information about the IPython-dev mailing list