【发布时间】:2012-11-21 15:13:47
【问题描述】:
请参阅以下fiddle。
HTML
<script id="person" type="text/x-handlebars-template">
<div>Title : {{title}} </div>
<div>First Name : {{firstname}}</div>
<div>Last Name : {{lastname}}</div>
</script>
<div id="people"></div>
JS
(function ($) {
var personTemplate= Handlebars.compile($("#person").html());
var Person= Backbone.Model.extend({
title: null,
firstname : "",
lastname : ""
});
PersonView = Backbone.View.extend({
tagName: "div",
template: personTemplate,
render: function () {
$(this.el).html(this.template(this.model));
return this;
}
});
$(document).ready(function () {
var AppView = Backbone.View.extend({
initialize: function () {
var passView = new PersonView (
{ model: new Person({ title: "Mr",
firstname : "John",
lastname : "Smith"})
});
$('#people').append(passView.render().el.outerHTML);
}
});
var App = new AppView();
});
})(jQuery);
我已经创建了一个基本模式和视图,但是模板没有获取视图的参数。如果我直接在人模型上设置值,它会找到它们。但如果我通过模式的新实例设置它们(或者即使我使用 init 方法对它们进行 .set() 设置。
我做错了什么?
【问题讨论】:
-
我想你忘记了模型上的
toJSON(),试试$(this.el).html(this.template(this.model.toJSON())); -
就是这样!您可以将其记录为答案吗?谢谢!