无法在浏览器中显示待办事项列表视图
Unable to display TodoList view in browser
我正在学习Backbone JS,我正在尝试显示TodosList,但不渲染。但是,我能够从服务器获取集合数据。
你能告诉我下面的代码出了什么问题吗?
这是代码:
<html>
<head>
<link rel="stylesheet"
href="http://cdnjs.cloudflare.com/ajax/libs/twitter-bootstrap/2.1.1/css/bootstrap.min.css">
</head>
<body>
<div id="demo"></div>
<script src="http://cdnjs.cloudflare.com/ajax/libs/underscore.js/1.7.0/underscore-min.js"></script>
<script src="http://cdnjs.cloudflare.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<script src="http://cdnjs.cloudflare.com/ajax/libs/backbone.js/1.1.2/backbone-min.js"></script>
<script type="text/javascript">
var TodoItem = Backbone.Model.extend({
urlRoot: 'api',
})
var TodoCollection = Backbone.Collection.extend({
model: TodoItem,
url: 'api/todos'
})
var TodoView = Backbone.View.extend({
initialize: function(){
this.listenTo(this.collection,'fetch',this.render)
this.collection.fetch()
},
render: function(){
this.collection.forEach(this.addOne,this)
},
addOne: function(todoItem){
console.log(todoItem.get('status'))
}
})
var todoItem = new TodoItem()
var todoList = new TodoCollection()
var todoView = new TodoView({el: '#demo', collection: todoList})
todoView.render()
console.log(todoView.el)
</script>
</body>
</html>
而且我不确定"获取"是否是预定义的事件?何时使用"重置"事件,何时使用"获取"事件?他们看起来都和我相似。
没有'fetch'
事件,因此您的listenTo
不会执行任何有用的操作。通常,当您fetch
整个集合时,您会重置它:
this.collection.fetch({ reset: true });
然后侦听'reset'
事件:
this.listenTo(this.collection, 'reset', this.render);
fetch
的reset:true
选项告诉fetch
在一个操作中将集合的内容完全替换为获取的数据;然后集合将在fetch
全部完成时触发'reset'
事件,并且您的侦听器将其转换为render
调用。
您的initialize
应该更像:
initialize: function(){
this.listenTo(this.collection, 'reset', this.render);
this.collection.fetch({ reset: true });
}
相关文章:
- 如何将参数从列表视图中的项传递到模板
- 根据手机上是否存在文件,在jQuery mobile中动态填充列表视图
- 取消选择滚动启动时的所有列表视图项目
- 使用PhoneGap和jQuery Mobile在android设备上显示动态列表视图
- 通过格式化将jquery移动组件动态添加到列表视图中
- jqmobile列表视图中元素之间的间距相等
- 如何在Vue.js中使用列表视图
- jQuery移动列表视图和面板
- 剑道移动列表视图更改过滤器onclick
- Metro 应用程序中的列表视图项目单击
- 列表视图在Android上滚动断断续续且缓慢
- 我们可以在 CouchDB 中对排序列表视图进行排序吗?
- 用户控件内的 ASP 列表视图.如何在用户控件完全加载后触发 javascript
- 使 Windows 8 列表视图可编辑
- 如何使按钮的行为因选定的列表视图项而异
- 在PHP循环中动态创建jQuery列表视图
- jQuery访问列表视图->ul->李->span->img
- 带有砖石结构的轴网视图/列表视图
- 访问可扩展QML应用程序中的列表视图索引
- jquery-mobile的列表视图中的两个弹出窗口