[英]How to render a view from a view in backbone.js
我尝试初始化视图加载,然后将事件侦听器附加到初始视图中的链接,以便当有人单击该链接时,文档主体将替换为其他的ribs.js视图。
我已经很接近了,但是我一直遇到js错误:
Uncaught TypeError: Cannot call method 'replace' of undefined underscore-min.js:5
其次,一旦视图被渲染,如何在#blog中向#container添加一个类? 您会在小提琴中看到我已经编写了CSS和新类。
的HTML
<script type="text/template" id="index">
<a href="" id="thing">click here</a>
</script>
<script type="text/template" id="blog">
<div id="container"><p>Hello world.</p></div>
</script>
JS
BlogView = Backbone.View.extend({
initialize: function(){},
render: function(){
var template = _.template( $("#blog").html(), {} );
this.$el.html( template );
}
});
IndexView = Backbone.View.extend({
initialize: function () {
this.render();
},
render: function () {
var template = _.template($("#index").html(), {});
this.$el.html(template);
},
events: {
"click a": "initBlogView"
},
initBlogView: function () {
blog_view.render();
return false;
}
});
var blog_view = new BlogView({ el: $("body") });
var index_view = new IndexView({
el: $("body")
});
其次,我会
我认为定位“正文”的问题在于您还覆盖了脚本模板标记。 下划线之后找不到模板,从而导致错误。 尝试定位到容器。
要添加一个类,可以简单地使用this.$el.find("#container").addClass("class")
。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.