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
Post a Comment