Moustache JS Template z JSON Collection
Cześć, to moja pierwsza próba użycia MustacheJS z usługą WWW JSON w .net
Obecnie walczę, że nie mogę znaleźć tego, co robię źle ustawiając ten podstawowy przykład:
Moja usługa sieci Web ponawia następujący ciąg:
[
{
"ShortDescription":"BOX",
"Description":"BOXING",
"Id":1
},
{
"ShortDescription":"EPL",
"Description":"ENGLISH PREMIER LEAGUE",
"Id":2
}
]
Sprawdziłem jego składnię na tej stronie:http://json.parser.online.fr/
a oto kod HTML, którego używam:
google.load("jquery", "1");
google.setOnLoadCallback(function () {
$(document).ready(
function () {
$.ajax({
url: "../data.asmx/geteagues",
type: "POST",
dataType: "json",
data: "",
contentType: "application/json; charset=utf-8",
success: function (data) {
var template = "<h1>{{ShortDescription}} {{Description}}</h1>";
var html = Mustache.render(template, data);
$('#sampleArea').html(html);
alert(html);
}
})
}
)
});
Wysyłam cały kod JS, ponieważ nie jestem bardzo dobry z javascript, zasadniczo chcę załadować zawsze najnowszą wersję JQuery z google, a następnie zadzwonić do WS.
Jak dotąd problem polega na umieszczeniu punktu przerwania w następującym wierszu:
var html = Mustache.render(template, data);
Widzę, że szablon jest ustawiony poprawnie, podobnie jak dane o tej samej wartości, co powyżej, ale funkcja .render powraca:
Wydaje mi się, że dane nie podobały się.Do tej pory wszystkie przykłady, które widziałem dla danych wbudowanych, mają następującą strukturę:
{
"repo": [
{ "name": "resque" },
{ "name": "hub" },
{ "name": "rip" },
]
}
A następnie szablon zdefiniowany w ten sposób:
{{#repo}}
<b>{{name}}</b>
{{/repo}}
Ale jedyną różnicą w stosunku do moich danych jest to, że nie mam „rodzica” takiego jak „repo”
Po stronie serwera korzystam z biblioteki .net o nazwie JSON.net iw dokumentacji dotyczącej serializacji kolekcji:
james.newtonking.com/projects/json/help/html/SerializingCollections.htm
ostateczny wynik nie zawiera nazwy węzła nadrzędnego, której brakuje mi w mojej definicji szablonu Moustache:
[
{
"Name": "Product 1",
"ExpiryDate": "2000-12-29T00:00Z",
"Price": 99.95,
"Sizes": null
},
{
"Name": "Product 2",
"ExpiryDate": "2009-07-31T00:00Z",
"Price": 12.50,
"Sizes": null
}
]
Czy tego właśnie brakuje? węzeł nadrzędny „repo” z moich danych, abym mógł iterować mój szablon?
Z góry dziękuję za poświęcony czas.
-ed