Это действительно странно. Это мой первый раз с использованием библиотеки усов, и эти данные работают локально, когда я анализирую их как литерал необработанного объекта:
{
"datacenters":[
{
"title":"Flinders St Station",
"description":"This is a pretty major train station."
},
{
"title":"Southern Cross Station",
"description":"Did you know it used to be called Spencer St Station?"
}
]
}
Вот шаблон усов, который я использую:
<script id="dinfoTpl" type="text/template">
{{#datacenters}}
<h1>{{title}}</h1>
<p>{{description}}</p>
{{/datacenters}}
</script>
Но в тот момент, когда я заархивирую его в файл json и попытаюсь изменить его следующим образом:
<script type="text/javascript">
var data, template, html;
$.ajax({
url: "datacenter.json",
success: function(data) {
var template = $('#dinfoTpl').html();
var html = Mustache.to_html(template, data);
$('#output').html(html);
}
});
</script>
Я получаю сообщение об ошибке:
Uncaught TypeError: <template>:2
>> {{#datacenters}}
<h1>{{title}}</h1>
<p>{{description}}</p>
{{/datacenters}}
Cannot use 'in' operator to search for 'datacenters' in {
"datacenters":[
{
"title":"Flinders St Station",
"description":"This is a pretty major train station."
},
{
"title":"Southern Cross Station",
"description":"Did you know it used to be called Spencer St Station?"
}
]
}
Что я делаю не так?
Живой код здесь: http://bit.ly/A17pBP