我对BackboneJs很陌生,而且我在那里迷路了,整天都在面对这个简单的问题而迷失。
我尝试创建一个离线运行的应用。所以我不使用任何模型或集合,以及.save,.fetch等奇怪的东西。 我只使用Backbone作为历史,结构和模板系统。
我的问题是。我有一些JSON,如何在模板中显示它?
我的观点,一直在努力。我的json在jsonVar。
window.ExposView = Backbone.View.extend({
template:_.template($('#expos').html()),
render:function (eventName) {
console.log(jsonVar); // it's ok here
$(this.el).html(this.template(),{"output":jsonVar});
return this;
}
});
我的模板(同时使用jQuery mobile),我希望我的Json能够在那里展示。
<script type="text/tempate" id="expos">
<div data-role="header" class="header">
<a href="#" data-icon="back" class="back ui-btn-left">Back</a>
</div>
<div data-role="content" class="content">
<%= output %>
</div>
</script>
错误:输出未定义 ..好
另一个问题。 如果任何奇迹我的模板收到我的json输出,我如何使用underscoreJs显示它?
谢谢你的时间, 祝周末愉快。
答案 0 :(得分:1)
你非常接近。您只需要使用对象调用模板函数。
$(this.el).html(this.template({"output":jsonVar}));
答案 1 :(得分:0)
您的语法略有偏离 - 编译模板是您将JSON模型传递给的函数。像这样:
$(this.el).html(this.template({"output":jsonVar}));
您可以通过多种方式进行渲染,但我想您只想将标记添加到DOM中。尝试这样的事情:
var view = new ExposView();
$("body").append(view.render().el);