Json контент с использованием Jquery и Усы - Wamp
У меня есть файл HTML с шаблоном MUSTACHE + файл JSON на моем сервере Wamp. Я хочу заполнить мой HTML содержимым JSON. Почему это сейчас работает?
.HTML
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8" />
<title>Mustache Sample</title>
</head>
<body>
<div id="speakerbox">
<div id="carousel"></div>
</div>
<!--template-->
<script id="speakerstpl" type="text/template">
{{#speakers}}
<div class="speakers">
<h3>{{shortname}}</h3>
</div>
{{/speakers}}
</script>
<script src="//code.jquery.com/jquery-1.11.2.min.js"></script>
<script src="//code.jquery.com/jquery-migrate-1.2.1.min.js"></script>
<script src="//cdnjs.cloudflare.com/ajax/libs/mustache.js/0.8.1/mustache.min.js"></script>
<script type="text/javascript">
$(function(){
$.getJSON('data.json', function (data){
var template = $('#speakerstpl').html();
var html = Mustache.to_html(template, data);
$('#carousel').html(html);
}); //get json
});//function
</script>
</body>
</html>
.JSON
[
{
"speakers": [
{
"name": "ana",
"shortname": "ann",
"bio": "biogg"
},
{
"name": "bolacha",
"shortname": "bol",
"bio": "biogg de bolacha"
}
]
}
]
Есть ли проблема с Json?
Я что-то упустил в HTML?
Спасибо за помощь!
1 ответ
Решение
Проблема у вас есть speakers
заключенный в массив, что означает, что вам нужно использовать data[0]
как ваш аргумент to_html
( скрипка):
$(function(){
$.getJSON('data.json', function (data){
var template = $('#speakerstpl').html();
var html = Mustache.to_html(template, data[0]);
$('#carousel').html(html);
}); //get json
});//function
В качестве альтернативы вы можете удалить включающий массив, в этом случае ваш json будет выглядеть так ( fiddle):
{
"speakers": [
{
"name": "ana",
"shortname": "ann",
"bio": "biogg"
},
{
"name": "bolacha",
"shortname": "bol",
"bio": "biogg de bolacha"
}
]
}