我正在https://www.youtube.com/watch?v=3zVYH16yogQ&t=58s关注在手柄模板中渲染数据的教程,但似乎无法将数据传递给模板。
我的global.js文件:
$(document).ready(function(){
var source = $("#first-template").html();
var template = Handlebars.compile(source);
var context = {
title1 : "hello",
body1 : "body1"
}
var el_html = template(context);
$("#render_here").html(el_html);
$("#render_here_again").html(el_html);
});
我的观点文件:
<html>
<head>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.0/jquery.min.js"></script>
<link href="http://fontawesome.io/assets/font-awesome/css/font-awesome.css" rel="stylesheet" media="screen">
<script src="//netdna.bootstrapcdn.com/bootstrap/3.1.1/js/bootstrap.min.js"></script>
<script type="text/javascript" src="../javascripts/global.js"> </script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/handlebars.js/2.0.0/handlebars.js"></script>
</head>
<body>
<button name = "click" id ="click" >click </button>
<div id ="render_here">
first
</div>
<div id ="render_here_again">
second
</div>
<script id = "first-template" type="text/x-handlebars-template">
<div>
<h1 style ="color:green">{{title1}}</h1>
<h2 style ="color:blue">{{body1}}</h2>
</div>
</script>
</body>
</html>
在渲染页面时,应加载上下文变量中的数据,但它是空白的。当我在控制台中记录它时,我可以看到该对象,当我在console.log(el_html)时,脚本模板出现但没有上下文。知道我做错了吗?
答案 0 :(得分:0)
这对我有用。这是代码 - 我做的唯一真正的改变是将global.js内联并使jQuery的版本现代化:
<!DOCTYPE html>
<html>
<head>
<title>Page Title</title>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.1.1/jquery.min.js"></script>
<script>
$(document).ready(function(){
var source = $("#first-template").html();
var template = Handlebars.compile(source);
var context = {
title1 : "hello",
body1 : "body1"
};
var el_html = template(context);
$("#render_here").html(el_html);
$("#render_here_again").html(el_html);
});
</script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/handlebars.js/2.0.0/handlebars.js"></script>
</head>
<body>
<button name = "click" id ="click" >click </button>
<div id ="render_here">
first
</div>
<div id ="render_here_again">
second
</div>
<script id = "first-template" type="text/x-handlebars-template">
<div>
<h1 style ="color:green">{{title1}}</h1>
<h2 style ="color:blue">{{body1}}</h2>
</div>
</script>
</body>
</html>
此外,您正在使用古老版本的jQuery。我会转向更近期的事情 - 至少2.x.没有理由再使用v1.x了。