Javascript 无法创建对handelbars.js模板的ajax请求
我正在尝试为handelbars.js创建一个AJAX请求(使用jQuery),这是一个掌握使用模板概念的方法 我有一个数据对象和ajax请求:Javascript 无法创建对handelbars.js模板的ajax请求,javascript,jquery,ajax,datatemplate,handlebars.js,Javascript,Jquery,Ajax,Datatemplate,Handlebars.js,我正在尝试为handelbars.js创建一个AJAX请求(使用jQuery),这是一个掌握使用模板概念的方法 我有一个数据对象和ajax请求: var data = { users: [ {username: { firstName: "Alan", lastName: "Johnson" } , email: "alan@test.com" }, {username: { firstName: "Allison", lastName: "House" } , email: "alli
var data = { users: [
{username: { firstName: "Alan", lastName: "Johnson" } , email: "alan@test.com" },
{username: { firstName: "Allison", lastName: "House" } , email: "allison@test.com" },
{username: { firstName: "Ryan", lastName: "Carson" }, email: "ryan@test.com" }
]};
$(document).ready(function(){
$.get('h1template.js', function(template_text){
var template = Handlebars.compile(template_text);
var html = template(data);
$('#content').html(html);
});
});
这是h1template.js的内容:
<table>
<thead>
<th>Username</th>
<th>Real Name</th>
<th>Email</th>
</thead>
<tbody>
{{#users}}
<tr>
<td>{{username}}</td>
<td>{{firstName}} {{lastName}}</td>
<td>{{email}}</td>
</tr>
{{/users}}
</tbody>
</table>
用户名
真名
电子邮件
{{{#用户}
{{username}}
{{firstName}}{{lastName}}
{{email}}
{{/用户}
有些东西显然不对,因为这不起作用
怎么了?
我对ajax调用本身犯了什么愚蠢的错误吗?例如,调用它“.js”而不是“.php”
(我在本地主机内运行该文件,在查看网络属性时,“h1template.js”状态为304未修改)由于模板名为.js,它被解析为javascript文件。因此,您需要将其更改为.html或.php或任何您喜欢的格式
同样在users对象中,用户名是一个对象,因此在模板中输出{{username}只会给你[object,object]。你需要将它改为类似{{username.name}的东西。我对代码做了一些修改,并了解了如何编写它 h1template.html文件(而不是*.js”):
尝试将模板名称更改为
h1template.html
。当您发出警报(模板文本)时,您会得到什么@AshirvadSingh不会调用ajax上的回调,因为该文件被解析为javascript,因此jquery尝试将内容作为javascript加载,但失败了,而不仅仅是使用返回的内容调用回调。感谢将*.js更改为*.html的提示和username.name的其他提示!
<table>
...
</table>
var data = { users: [
{username: { firstName: "Alan", lastName: "Johnson" } , email: "alan@test.com" },
{username: { firstName: "Allison", lastName: "House" } , email: "allison@test.com" },
{username: { firstName: "Ryan", lastName: "Carson" }, email: "ryan@test.com" }
]};
$(document).ready(function(){
$.get('h1template.html', function(template_text){
var source = template_text;
var template = Handlebars.compile(source);
var html = template(data);
$('#content').html(html);
});
});