我在使用我的模型中获取数据时,在渲染我的视图时遇到了一些问题,所以我很感激任何帮助。这是我的HTML代码:
<ul id="datos">
</ul>
<script type="text/template" id="listado-template">
<h2>Mi listado</h2>
<li>Item 1: <%= item1 %></li>
</script>
<script>
modelo = new Modelo();
modeloView = new ModeloView({model: modelo});
</script>
这是我的模特和观点:
Modelo = Backbone.Model.extend({
urlRoot: 'myurljson',
});
Backbone.View.extend({
tagName: "ul",
el: "#datos",
template: _.template($('#listado-template').html()),
initialize: function() {
this.model.on('change', this.render, this);
},
render: function() {
this.$el.append(this.template(this.model.toJSON()));
return this;
}
});
问题是我的模板没有很好地重新定位。我在item1
收到了一个未定义的错误。但是,如果我删除此标记li
,则会重新标记标记h2
,因此我猜问题是通过“myurljson”从我的模型中获取数据。有帮助吗?谢谢!
答案 0 :(得分:2)
如果您尝试渲染未定义的变量,则下划线将失败。看到这个小提琴尝试重现您的问题:http://jsfiddle.net/nikoshr/PELfV/
你可以
在模型中定义具有合理值的默认item1
属性
Modelo = Backbone.Model.extend({
urlRoot: 'myurljson',
defaults: {
item1: ''
}
});
或在打印前测试该值
<script type="text/template" id="listado-template">
<li>Item 1: <% if (typeof item1!=="undefined") print(item1) %></li>
</script>