javascript - Backbone JS: Rendering template without something like $('body').append? -


using external template, trying render backbone js view dom. unfortunately, blank screen, while checking console confirms working.

to rendered template in dom, have $('body').append(myview.render().el);, according many resources shouldn't necessary. example, this view todomvc project's backbone implementation not incorporate $('body').append, makes me believe in code wrong, can't find it.

the template in html looks this:

<script id="name-template" type="text/template">     <%= name %> (<%=age %>) </script> 

and application code:

var app = app || {};  app.models = {}; app.views = {};  app.models.person = backbone.model.extend({     defaults: {         name: 'peter',         age: 34     } });  app.views.person = backbone.view.extend({     tagname: 'p',     template: _.template($('#name-template').html()),     initialize: function() {         console.log(this.model);     } });  app.personmodel = new app.models.person(); app.personview = new app.views.person({model: personmodel}); app.personview.render(); 

what have change upon page load, rendered template added dom?

the short anwser el can point element part of dom , if don't need manually append it. can simple pass in reference when create view instance, example

app.personview = new app.views.person({model: personmodel, el: '#someelement'}); app.personview.render(); 

here's longer version.

a backbone el reference dom element whether it's been attached page or not , isn't different in sense regular reference dom element. consider following plain vanilla javascript code

var pelement = document.createelement("p"); var pelement = $('p'); //using jquery 

at point pelement contains reference dom element isn't attached page (yet). attach p element won't visibly until attach page using following

document.body.appendchild(pelement); $('body').append(pelement); //or using jquery 

if instead of creating new p element instead got reference existing element, changes made element reflected on page,

var pelement = document.getelementbyid('#mypelement'); var pelement = $('#mypelement'); //using jquery 

at point can manipulate pelement wish without attaching page since part of page.


Comments

Popular posts from this blog

node.js - Using Node without global install -

How to access a php class file from PHPFox framework into javascript code written in simple HTML file? -

java - Null response to php query in android, even though php works properly -