我在主干中呈现视图时遇到了一些问题,无法从模型中获取数据,因此我非常感谢您的帮助。这是我的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"从我的模型中获取数据。有什么帮助吗?非常感谢。
Undercore将失败,如果您尝试呈现未定义的变量。看到这个Fiddle试图重现你的问题:http://jsfiddle.net/nikoshr/PELfV/
你可以
-
在模型中定义一个具有合理值的默认
item1
属性Modelo = Backbone.Model.extend({ urlRoot: 'myurljson', defaults: { item1: '' } });
上的演示http://jsfiddle.net/nikoshr/PELfV/1/
-
或在打印之前测试该值
<script type="text/template" id="listado-template"> <li>Item 1: <% if (typeof item1!=="undefined") print(item1) %></li> </script>
及其演示http://jsfiddle.net/nikoshr/PELfV/2/