我是一名有用的助手,可以帮助您翻译内容。以下是您需要翻译的内容:
刚开始使用Backbone.js和underscore.js,尝试为我的菜单列表(第一级)创建一个子菜单列表(第二级)。
这是我在JSON中创建的菜单列表(通过将其打印到浏览器控制台进行了确认):
[
{
"name": "Sök kund",
"path":
[
{
"subName": "Fondkonto",
"subPath": "#fondkonto"
},
{
"subName": "Kassakonto",
"subPath": "#kassakonto"
},
{
"subName": "Nytt sparande",
"subPath": "#nyttsparande"
}
]
},
{
"name": "Ny kund",
"path": "#new_customer"
},
{
"name": "Dokument",
"path": "#documents"
},
{
"name": "Blanketter",
"path": "#forms"
}
]
这是我编写的代码,用于在我的索引文件中显示内容。目前只打印一级:
<script type="text/template" id="menus"></script>
如果您想了解视图和模型/集合是如何构建的:
var Menus = require("../collections/menus");
var AllMenus = Backbone.View.extend({
el: "#menuContent",
template: _.template(document.getElementById("menus").innerHTML),
initialize: function() {
"use strict";
this.menus = new Menus();
this.listenTo(this.menus, "reset", this.render);
this.menus.fetch({
reset: true,
url: "./data/menus.json",
success: function() {
console.log("Succesfully loaded menus.json file.");
},
error: function() {
console.log("There was some error trying to load and process menus.json file.");
}
});
},
render: function() {
console.log( this.menus.toJSON());
this.$el.html(this.template({ menus: this.menus.toJSON() }));
return this;
}
});
var viewMenus = new AllMenus();
模型:
var Menu = Backbone.Model.extend({
defaults: {
name: "",
path: ""
}
});
module.exports = Menu;
集合:
var Menu = require("../models/menu");
var Menus = Backbone.Collection.extend({
model: Menu
});
module.exports = Menus;
不好意思贴这么多代码,但是为了让你理解我是如何构建的,这是必要的。但是我尝试展示我的子菜单却没有成功。
menu.path[n].subName
表示法。在这里查看详情。你的模板将不得不测试menu.path
是什么,并打印它或使用_.each遍历它。 - ourmandave