我正在尝试使用backbone.js,underscore.js和jquery的最新生产版本的一个简单示例(请参阅下面的完整代码)。 但是我无法在屏幕上显示任何内容。我已经尝试记录这个。$ el到控制台日志,它似乎有效,html var包含来自测试模板的正确解析的HTML。但是浏览器窗口中没有显示任何内容。
<!doctype html>
<html>
<head>
<meta charset="utf-8">
<title>testing Backbone.js</title>
</head>
<body>
<script type="text/template" id="test-template">
<div id="container">
<%= test %>
</div>
</script>
<script type="text/javascript" src="js/lib/jquery.js"></script>
<script type="text/javascript" src="js/lib/underscore.js"></script>
<script type="text/javascript" src="js/lib/backbone.js"></script>
<script type="text/javascript">
var testView = Backbone.View.extend({
el: $("#container"),
template: _.template($('#test-template').html()),
render: function() {
var html = this.template({test: 'hello World!'});
this.$el.html(html);
return this;
}
});
$(document).ready(function() {
var test = new testView();
test.render();
});
</script>
</body>
</html>
答案 0 :(得分:5)
没有带有id =“container”的元素来附加模板。如果你替换
el: $("#container")
与
el: $('body')
应该出现的东西
答案 1 :(得分:1)
没有渲染代码。模板内容不是DOM的可见部分; 试试这个:
<!doctype html>
<html>
<head>
<meta charset="utf-8">
<title>testing Backbone.js</title>
</head>
<body>
<div id="output"></div>
<script type="text/template" id="test-template">
<div id="container">
<%= test %>
</div>
</script>
<script type="text/javascript" src="js/lib/jquery.js"></script>
<script type="text/javascript" src="js/lib/underscore.js"></script>
<script type="text/javascript" src="js/lib/backbone.js"></script>
<script type="text/javascript">
var testView = Backbone.View.extend({
el: $("#container"),
template: _.template($('#test-template').html()),
render: function() {
var html = this.template({test: 'hello World!'});
$("#output").html(html);
return this;
}
});
$(document).ready(function() {
var test = new testView();
test.render();
});
</script>