Backbone.JS视图呈现,但未显示在页面上
Backbone.JS view renders, but not displayed on page
我正在将一个单页应用程序转换为主干。JS。下面的View使用body标记作为它的tagName,也就是说,我希望视图占据页面的整个内容。我不想使用容器div或其他技巧。
var ThingView = Backbone.View.extend({
tagName : "body",
...
// Show the HTML for the view
render : function() {
console.log('Displaying thing')
$(this.el).append('<h1>test</h1>');
console.log('finished')
console.log($(this.el))
return this; // For chaining
渲染时,我看到
finished
[
<body>
<h1>test</h1>
</body>
]
但是在我检查了DOM之后,主体就不再有文本了。
tagName
指示如果构造函数没有提供el,Backbone应该使用什么标签来创建其el。创建的元素不会自动插入到DOM中。
最简单的方法可能是创建将el设置为body
:的视图
new ThingView({el:'body'})
nikoshr解释的是正确的。此外,使用tagName是正确的。但理想情况下,您应该使用el元素,它在Backbone.js库中定义为View的元素(el)。
下面是执行此操作时应该使用的理想代码。
<script type="text/javascript">
$(document).ready(function(){
var ThingView = Backbone.View.extend({
el:$("body"),
initialize: function(){
_.bindAll(this,"render");
this.render();
},
render:function(){
this.el.append('<h1>test</h1>');
console.log('finished');
console.log($(this.el).html());
}
});
var ThingView = new ThingView();
});
</script>
相关文章:
- [AngularJS][UI Router]在视图中显示视图
- 可以't无法显示视图/集合
- 在 Angular JS 中显示视图上的数组
- 如何在主干中显示视图.js(路由器.js中不显示警报)
- Angular 在加载其他视图之前不显示视图
- 如何将自动完成搜索框重定向到显示视图
- 使用 Knockoutjs 显示视图模型中数据的更好方法
- Angular UI路由器未显示视图
- 无法在“角度”中显示视图
- 在新窗口中显示视图
- 显示视图时JavaScripts不工作-Rails 4 Ruby 2
- 如何在单击按钮时显示视图
- AngularJS$routeProvider未显示视图
- 将创建视图嵌套在Backbone.js中的显示视图中
- 烬不显示视图
- MVC应用程序不显示视图中的数据
- 主干路由器不能显示视图
- 流星js |通过帮助器显示视图中的Json
- 如何在HTML或css中禁用选中的突出显示视图
- 我如何嵌入街景图像,使其显示视图从街道(而不是从建筑物内部)