Backbone.js 骨干初学者可以';t使视图显示在屏幕上
有人能帮我弄清楚为什么我加载这个html时会发生任何事情吗?它由Python的SimpleHTTPServer在本地提供,现在我只想在屏幕上显示单词sample和user main.jsBackbone.js 骨干初学者可以';t使视图显示在屏幕上,backbone.js,Backbone.js,有人能帮我弄清楚为什么我加载这个html时会发生任何事情吗?它由Python的SimpleHTTPServer在本地提供,现在我只想在屏幕上显示单词sample和user main.js /* Model */ var User = Backbone.Model.extend({}); var sample_user = new User({ name: { first: 'sample', last: 'use
/* Model */
var User = Backbone.Model.extend({});
var sample_user = new User({
name: {
first: 'sample',
last: 'user'
}
});
/* View */
var UserView = Backbone.View.extend({
tagName: 'div',
className: 'card',
template: _.template( $('#card_template').html() ),
render: function() {
this.$el.html( this.template( this.model.toJSON() ) );
return this;
}
});
var sample_card = new UserView({ model: sample_user });
sample_card.render();
main.html
<!doctype html>
<html>
<head>
<title>Backbone kickstart</title>
</head>
<body>
<script type="text/template" id="card_template">
<h1><%= name.first + ' ' + name.last %></h1>
</script>
<script type="text/javascript" src="//cdnjs.cloudflare.com/ajax/libs/underscore.js/1.5.2/underscore.js" charset="utf-8"></script>
<script type="text/javascript" src="//cdnjs.cloudflare.com/ajax/libs/jquery/2.1.0/jquery.js" charset="utf-8"></script>
<script type="text/javascript" src="//cdnjs.cloudflare.com/ajax/libs/backbone.js/1.1.0/backbone.js" charset="utf-8"></script>
<script type="text/javascript" src="//cdnjs.cloudflare.com/ajax/libs/d3/3.4.1/d3.min.js" charset="utf-8"></script>
<script type="text/javascript" src="//cdnjs.cloudflare.com/ajax/libs/topojson/1.1.0/topojson.min.js" charset="utf-8"></script>
<script type="text/javascript" src="main.js" charset="utf-8"></script>
</body>
</html>
主干网启动
当您构建自己的el
时,默认情况下,主干的呈现
不会对页面做任何事情。您的渲染
:
render: function() {
this.$el.html( this.template( this.model.toJSON() ) );
return this;
}
只需填写视图的el
,但实际上没有人将el
添加到页面中。在您的案例中,通常的模式如下:
var sample_card = new UserView({ model: sample_user });
$('body').append(sample_card.render().el);
在这里,我建议不要将模板放在
中,这样很容易意外地覆盖它们。如果他们在
中,你会过得更好,而你可能不会操纵他们。回答得很好,谢谢你的帮助。顺便问一下,是否可以将模板放在外部的.html文件上?这是可能的,但会给您带来令人不快的AJAX问题。通常,您需要设置服务器代码以获取适当的模板文件,并将它们内联到
中。在服务器端添加一点node.js代码以将模板预编译到JST={'template name':compiled_template_function,…}
结构中也是很常见的,那么编译后的模板将位于.js
文件中,您可以像任何其他.js
文件一样包含该文件。请记住,f=u.template(x)
返回一个函数,该函数的JavaScript源代码位于f.source
中。哦,好的。我想现在我会坚持你的建议,等待埃里克·拜德曼在他的教程中介绍下一步。我强烈期望所有web技术都能有一个更简单、更模块化的未来。JS已经在此路径上。