Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/392.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 无法创建对handelbars.js模板的ajax请求_Javascript_Jquery_Ajax_Datatemplate_Handlebars.js - Fatal编程技术网

Javascript 无法创建对handelbars.js模板的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

我正在尝试为handelbars.js创建一个AJAX请求(使用jQuery),这是一个掌握使用模板概念的方法

我有一个数据对象和ajax请求:

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);
    });
});