Schnurrbart-JS-Vorlage mit JSON-Sammlung
Hallo, dies ist mein erster Versuch, MoustacheJS mit einem JSON-Webservice in .net zu verwenden
Momentan habe ich Probleme, ich kann anscheinend nicht herausfinden, was ich falsch mache, indem ich dieses grundlegende Beispiel anführe:
Mein Webservice speichert die folgende Zeichenfolge:
[
{
"ShortDescription":"BOX",
"Description":"BOXING",
"Id":1
},
{
"ShortDescription":"EPL",
"Description":"ENGLISH PREMIER LEAGUE",
"Id":2
}
]
Ich habe die Syntax mit dieser Website überprüft:http://json.parser.online.fr/
Und hier ist der HTML-Code, den ich verwende:
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);
}
})
}
)
});
Ich poste den gesamten JS-Code, da ich nicht sehr gut mit Javascript umgehen kann. Grundsätzlich möchte ich immer die neueste JQuery-Version von Google laden und dann meinen WS-Aufruf bearbeiten.
Das Problem ist bisher, dass wenn ich einen Haltepunkt in der folgenden Zeile platziere:
var html = Mustache.render(template, data);
Ich sehe, dass die Vorlage und die Daten auf den gleichen Wert wie oben eingestellt sind, aber die .render-Funktion gibt Folgendes zurück:
Mir scheinen die Daten nicht gefallen zu haben.Bisher haben alle Beispiele, die ich für Inline-Daten gesehen habe, die folgende Struktur:
{
"repo": [
{ "name": "resque" },
{ "name": "hub" },
{ "name": "rip" },
]
}
Und dann eine Vorlage wie folgt definiert:
{{#repo}}
<b>{{name}}</b>
{{/repo}}
Aber der einzige Unterschied zu meinen Daten ist, dass ich kein "Elternteil" wie "Repo" habe.
Auf der Serverseite verwende ich eine .net-Bibliothek namens JSON.net und in der Dokumentation, wie Sammlungen serialisiert werden:
james.newtonking.com/projects/json/help/html/SerializingCollections.htm
Das Endergebnis enthält nicht den Namen des übergeordneten Knotens, den ich in meiner Mustache-Vorlagendefinition vermisse:
[
{
"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
}
]
Fehlt mir das? der "repo" Elternknoten aus meinen Daten, damit ich meine Vorlage durchlaufen kann?
Vielen Dank im Voraus für Ihre Zeit.
-ed