or angular or ember! the slick AngularJS way of embedding d3 is to stick all DOM-manipulation code in ‘directives’ that bind on elements. (Directives generalize to  http://www.polymer-project.org/). (I don’t know ember much at all, but it’s the other modern web MVC)