因此,基本上this.template
(在大多数情况下)将是html template
您用于视图的编译版本。
它将在其中包含占位符,并将采用与模板中的占位符相同的键的参数。例如(Handlebars 模板),
<section id="{{id}}">
<header>{{header_text}}</header>
</section>
把上面的代码看成一个模板,当你编译并存入时this.template
,它会返回一个函数,这个函数接受一个json
对象作为参数,所以 nowthis.template
是一个函数。
你可以像下面这样称呼它,
var html_text = this.template({
id : "main_content",
header_text : "Hi Welcome !!"
});
this.$el.html(html_text);
执行后,el
内容为
<section id="main_content">
<header>Hi Welcome !!</header>
</section>
因此,当您这样做时this.$el.html(this.template(this.model.toJSON());
,它实际上会为您生成方法所需的json
参数this.template
,因此可以正常工作。
正如Loamhoof所说,在this.$el.html(this.model.get("city"));
您使用 html 方法时,该方法将根据模型的属性值设置 el 的 html 内容。