by Guest » 13 Jan 2025, 11:08
Ich habe gerade mit Handlers.js angefangen und bin auf ein kleines Problem gestoßen
Ich verwende Breitendaten der Version 1.0.0, die ich von JSON über jQuery erhalte. Alles funktioniert einwandfrei, meine Daten werden in die Vorlage übernommen und wie erwartet angezeigt, ich erhalte jedoch immer wieder diese Fehlermeldung.
Code: Select all
Error: You must pass a string or Handlebars AST to Handlebars.compile. You passed undefined
Wenn ich die Quelle in der Konsole protokolliere, erhalte ich Folgendes. Ich weiß, dass es sich nicht um eine Zeichenfolge handelt, aber das wird in diesem Tutorial erklärt:
http://javascriptplayground.com/blog/2012 /05/javascript-templating-lenker-tutorial/. Liege ich da falsch?
Code: Select all
{{#sets}}
[*]
{{title}}
[img]{{img}}[/img]
{{/sets}}
Hier ist der Rest
HTML
Code: Select all
[list]
{{#sets}}
[*]
{{title}}
[img]{{img}}[/img]
{{/sets}}
[/list]
jQuery
Code: Select all
function getProductsSets() {
$.getJSON('products/products.json', {
format: "json"
}).done(function(json) {
$.each(json.sets, function() {
var source = $('#full-sets-template-mobile').html();
console.log(source)
var template = Handlebars.compile(source);
var data = template(json);
var html = $('#sets-template-inner').html(data);
});
}).fail(function() {
console.log('failed');
});
}
JSON
Code: Select all
{
"sets":
[
{
"title": "raw bones",
"img": "img/sets/set1.jpg",
"desc": "Raw pine table with 2 chairs and a bench.",
"base": 1200,
"seating":
[
{
"price": 0,
"name": "4 seater"
},
{
"price": 400,
"name": "6 seater"
},
{
"price": 800,
"name": "8 seater"
}
]
},
{
"title": "sky blue",
"img": "img/sets/set1.jpg",
"desc": "Raw pine table with 2 chairs and a bench",
"base": 1300,
"seating":
[
{
"price": 0,
"name": "4 seater"
},
{
"price": 500,
"name": "6 seater"
},
{
"price": 800,
"name": "8 seater"
}
]
}
]
}
Ich hoffe, ich habe hier genug Informationen und danke für jede Hilfe.
Ich habe gerade mit Handlers.js angefangen und bin auf ein kleines Problem gestoßen
Ich verwende Breitendaten der Version 1.0.0, die ich von JSON über jQuery erhalte. Alles funktioniert einwandfrei, meine Daten werden in die Vorlage übernommen und wie erwartet angezeigt, ich erhalte jedoch immer wieder diese Fehlermeldung.
[code]Error: You must pass a string or Handlebars AST to Handlebars.compile. You passed undefined
[/code]
Wenn ich die Quelle in der Konsole protokolliere, erhalte ich Folgendes. Ich weiß, dass es sich nicht um eine Zeichenfolge handelt, aber das wird in diesem Tutorial erklärt: http://javascriptplayground.com/blog/2012 /05/javascript-templating-lenker-tutorial/. Liege ich da falsch?
[code]{{#sets}}
[*]
{{title}}
[img]{{img}}[/img]
{{/sets}}
[/code]
Hier ist der Rest
HTML
[code]
[list]
{{#sets}}
[*]
{{title}}
[img]{{img}}[/img]
{{/sets}}
[/list]
[/code]
jQuery
[code]function getProductsSets() {
$.getJSON('products/products.json', {
format: "json"
}).done(function(json) {
$.each(json.sets, function() {
var source = $('#full-sets-template-mobile').html();
console.log(source)
var template = Handlebars.compile(source);
var data = template(json);
var html = $('#sets-template-inner').html(data);
});
}).fail(function() {
console.log('failed');
});
}
[/code]
JSON
[code]{
"sets":
[
{
"title": "raw bones",
"img": "img/sets/set1.jpg",
"desc": "Raw pine table with 2 chairs and a bench.",
"base": 1200,
"seating":
[
{
"price": 0,
"name": "4 seater"
},
{
"price": 400,
"name": "6 seater"
},
{
"price": 800,
"name": "8 seater"
}
]
},
{
"title": "sky blue",
"img": "img/sets/set1.jpg",
"desc": "Raw pine table with 2 chairs and a bench",
"base": 1300,
"seating":
[
{
"price": 0,
"name": "4 seater"
},
{
"price": 500,
"name": "6 seater"
},
{
"price": 800,
"name": "8 seater"
}
]
}
]
[/code]
}
Ich hoffe, ich habe hier genug Informationen und danke für jede Hilfe.