我有这个模板:
<script type="text/template" id="menu-template">
<a ><li data-menuGroup="<%= menuGroup %>" class="<%=liClass%>" id="<%= liId%>"><%=name%></li></a>
</script>
这个JSON:
{"id":5,"menuId":2,"name":"Home","liId":"reports_home_sub_menu","liClass":"tab","targetDiv":"reportHome","contentName":"qado_reports_home","url":"","callback":"","orderBy":1,"privilage":"","menuGroup":"reportsTab"}
和这个Marionette Javascript:
View = Backbone.Marionette.ItemView.extend({
template: "#menu-template"
});
var model = new Backbone.Model(json);
var view = new View(model);
view.render();
$("#menuContainer").append(view.el);
但是当我运行它时,我在控制台中收到“ReferenceError:menuGroup is defined defined”错误。我对Marionette很新,所以这可能是愚蠢的。但是JSON显然有一个“menuGroup”项,所以我错过了什么?
答案 0 :(得分:2)
你很亲密。首先,确保将JSON字符串解析为JavaScript对象。其次,View
构造函数不将模型作为
参数,但是options
对象,其中包含model
字段。
var modelData = JSON.parse(json);
var model = new Backbone.Model(modelData);
var view = new View({model: model});