Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/72.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 将把手渲染为HTML时出现的问题_Javascript_Jquery_Html_Handlebars.js - Fatal编程技术网

Javascript 将把手渲染为HTML时出现的问题

Javascript 将把手渲染为HTML时出现的问题,javascript,jquery,html,handlebars.js,Javascript,Jquery,Html,Handlebars.js,当我用html呈现我的把手模板时,它看起来基本上跳过了“把手”部分的填充。我基本上是打印带有标题和内容的消息,并且使用“!each”帮助程序显示我的所有消息。我最初认为这是因为它转义了它周围的html,所以我尝试在每个部分上使用一个三重句柄条{{{{{{{{{{},但是使用带有三重隐藏的每个辅助对象给了我一个错误。我是否可能错误地使用了把手 我用于呈现HTML和我的把手模板的typescript如下所示: 公共静态刷新数据(数据:任意){ $(“#indexMain”).html(handle

当我用html呈现我的把手模板时,它看起来基本上跳过了“把手”部分的填充。我基本上是打印带有标题和内容的消息,并且使用“!each”帮助程序显示我的所有消息。我最初认为这是因为它转义了它周围的html,所以我尝试在每个部分上使用一个三重句柄条{{{{{{{{{{},但是使用带有三重隐藏的每个辅助对象给了我一个错误。我是否可能错误地使用了把手

我用于呈现HTML和我的把手模板的typescript如下所示:

公共静态刷新数据(数据:任意){
$(“#indexMain”).html(handlebar.templates['main.hbs'](数据));
//upvote按钮的辅助功能
把手.注册表帮助器('getUButton',函数(id){
id=把手。EscapeeExpression(id);
返回新把手。安全字符串(
“向上投票”
);
});
//下一票按钮的辅助功能
把手。注册表帮助器(“getDButton”,函数(id){
id=把手。EscapeeExpression(id);
返回新把手。安全字符串(
“否决票”
);
});
//抓取模板脚本
var theTemplateScript=$(“#主模板”).html();
//编译模板
var theTemplate=handlebar.compile(模板脚本);
//从服务器获取消息并将其添加到上下文中
//这是传递给模板的默认上下文
变量上下文={
信息:数据
}
log(“上下文:”)
console.log(上下文);
//将数据传递到模板
var theCompiledHtml=模板(上下文);
console.log(compiledhtml);
//将编译后的html添加到页面
$(“#消息占位符”).html(模板(上下文));
//添加所有单击处理程序
//获取id以u开头的所有按钮,并设置单击列表器
$(“.up按钮”)。单击((事件)=>{
var id=$(event.target).attr(“id”).substring(1);
main.upvote(id)
});
//获取id以d开头的所有按钮,并设置单击列表器
$(“.down按钮”)。单击((事件)=>{
var id=$(event.target).attr(“id”).substring(1);
主。下一票(id)
});
}

当前消息
{{{#每条消息}
  • 计票:{{likeCount} {{title}}

    {{content}

    {{getUButton id}} {{getDButton id}}
  • {{/每个}} 发布新消息 标题 消息 留言
    好的,那么提供给模板的数据可能格式不正确。这是一个工作片段(去掉了非基本内容)。传递给
    refreshData
    模板的数据必须是数组。请确保它不是包含数组的对象

    
    页面标题
    让刷新数据=(数据)=>{
    //抓取模板脚本
    var theTemplateScript=$(“#主模板”).html();
    //编译模板
    var theTemplate=handlebar.compile(模板脚本);
    //从服务器获取消息并将其添加到上下文中
    //这是传递给模板的默认上下文
    变量上下文={
    信息:数据
    };
    log(“上下文:”,上下文);
    //将编译后的html添加到页面
    $(“#消息占位符”).html(模板(上下文));
    }
    $(() => {
    风险值数据=[
    {likeCount:3,标题:'我的标题',内容:'一些内容'},
    {likeCount:0,标题:“我的第二个标题”,内容:“其他一些内容”}
    ];
    刷新数据(数据);
    })
    当前消息
    {{{#每条消息}
    
  • 计票:{{likeCount} {{title}}

    {{content}

  • {{/每个}} 发布新消息 标题 消息 留言
    很抱歉,我本应包含更多的代码,我正试图使其更易于阅读,但是,我编辑了上面的评论,以包含整个把手模板,我实际上已经包含了脚本标记,并且我有使用此模板并将其呈现为html的整个方法。根据您的建议重新编写了我的答案补充澄清。