Twitter ブートストラップを使用して動的メニューを構築しようとしています。アイデアは、内部にメニュー項目を含む json ファイルをロードすることです。
// test.json
{
"children": [
{
"text": "Item1",
"children": [
{"text": "Item11", "link": "/link11"},
{"text": "Item12", "link":"/link12"},
{"text": "Item13", "children": [
{"text": "Item131", "link":"/link131"},
{"text": "Item132", "link":"/link132"}
]},
{"text": "Item14", "link":"/link13"}
]},
{
"text": "Item2",
"children": [
{"text": "Item21", "link":"/link21"},
{"text": "Item22", "link":"/link22"}
]},
{
"text": "Item3"
}
]
}
これは、Twitter ブートストラップで静的にレンダリングできます。
// index.html
<!DOCTYPE html>
<html lang="en">
<head>
<title>Test</title>
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<link href="bootstrap/css/bootstrap.min.css" rel="stylesheet" media="screen">
</head>
<body>
<div class="navbar">
<div class="navbar-inner" id ="navbar-inner-main">
<div class="container">
<div class="nav-collapse collapse navbar-responsive-collapse">
<ul class="nav">
<li class="dropdown">
<a class="dropdown-toggle" data-toggle="dropdown" href="#">Item1</a>
<ul class="dropdown-menu">
<li>
<a href="/link11">Item11</a>
</li>
<li>
<a href="/link12">Item12</a>
</li>
<li class="dropdown-submenu">
<a class="dropdown-toggle" data-toggle="dropdown" href="#">Item13</a>
<ul class="dropdown-menu">
<li>
<a href="/link131">Item131</a>
</li>
<li>
<a href="/link132">Item132</a>
</li>
</ul>
</li>
</ul>
</li>
<li class="dropdown">
<a class="dropdown-toggle" data-toggle="dropdown" href="#">Item2</a>
<ul class="dropdown-menu">
<li>
<a href="/link21">Item21</a>
</li>
<li>
<a href="/link22">Item22</a>
</li>
</ul>
</li>
<li>
<a href="#">Item3</a>
</li>
</ul>
</div>
</div>
</div>
</div>
<script src="http://code.jquery.com/jquery.js"></script>
<script src="bootstrap/js/bootstrap.min.js"></script>
次のような関数を index.html に追加したいと思います。
<script type="text/javascript">
$(document).ready(function () {
$.getJSON('ajax/test.json', function(data) {
// get json, parse it and append to .nav
});
});
</script>
json を順序なしリストに解析する最善の方法は、テンプレートを使用することだと思います。ピュア と口ひげで試してみましたが成功しませんでした。この問題は、再帰的なアプローチを一貫性のないものにするドロップダウン サブメニュー クラスが原因です。
何か提案はありますか?
前もって感謝します