json - Backbone toJSON not rendering -
when use backbone tojson method of model this:
this.$el.html(this.model.tojson()); it doesn't render model view root element ( more 1 attribute ).
but when 1 property model, this;
this.$el.html(this.model.get("city")); it rendered properly.
also, when use template in first case (tojson) - rendered fine.
this.$el.html(this.template(this.model.tojson()); why ?
thanks
so, this.template (in of cases) compiled version of html template have view.
it have placeholders in it, , take parameters same key placeholders in template. example (handlebars templates),
<section id="{{id}}"> <header>{{header_text}}</header> </section> considering above code template, when compile , store in this.template, returns function, takes json object parameter, this.template function.
you can call below,
var html_text = this.template({ id : "main_content", header_text : "hi welcome !!" }); this.$el.html(html_text); after execution, el's contents be
<section id="main_content"> <header>hi welcome !!</header> </section> so when this.$el.html(this.template(this.model.tojson());, generates required json parameter this.template method you, hence works fine.
and loamhoof said, in this.$el.html(this.model.get("city")); use html method set html content of el based on property value of model.
Comments
Post a Comment