Backbone.js 遵循主干JS和CoffeeScript教程,有问题吗
我将学习本教程: 到目前为止,一切都还可以,除了在最后一节(5)中实现“交换”功能。当这种情况发生时,我得到的是“undefined”返回,而不是应该返回的内容。请参阅教程了解应该发生什么 我没有发现代码上的差异 我的如下:(用咖啡脚本)Backbone.js 遵循主干JS和CoffeeScript教程,有问题吗,backbone.js,coffeescript,Backbone.js,Coffeescript,我将学习本教程: 到目前为止,一切都还可以,除了在最后一节(5)中实现“交换”功能。当这种情况发生时,我得到的是“undefined”返回,而不是应该返回的内容。请参阅教程了解应该发生什么 我没有发现代码上的差异 我的如下:(用咖啡脚本) jQuery-> 类项扩展了主干.Model 默认值: 第一部分:“嗨” 第二部分:“主干” 类列表扩展了主干。集合 型号:项目 类ItemView扩展了主干.View 标记名:“li” 初始化:-> _宾德尔先生@ @model.bind“更改”,@rend
jQuery->
类项扩展了主干.Model
默认值:
第一部分:“嗨”
第二部分:“主干”
类列表扩展了主干。集合
型号:项目
类ItemView扩展了主干.View
标记名:“li”
初始化:->
_宾德尔先生@
@model.bind“更改”,@render
@model.bind“删除”,@unender
渲染:->
$(@el.html”“”
#{@model.get'part1'}{@model.get'part2'}!
交换
删除
"""
console.log@model.get“第2部分”
@
取消预订:->
$(@el).remove()
交换:->
@模型集
第1部分:@model.get“第2部分”
第2部分:@model.get“第1部分”
删除:->
@model.destroy()
活动:
“单击。交换”:“交换”
'单击。删除':'删除'
类ListView扩展了主干.View
el:$‘body’
初始化:->
_宾德尔先生@
@集合=新列表
@collection.bind'add',@appendItem
@计数器=0
@render()
渲染:->
$(@el).附加“添加列表项”
$(@el).附加“
”
附加项:->
@柜台++
项目=新项目
item.set part2:“#{item.get'part2'}#{@counter}”
@集合。添加项
附录项目:(项目)->
项目视图=新项目视图模型:项目
$('ul')。附加项_view.render().el
事件:“单击按钮”:“添加项”
Backbone.sync=(方法、模型、成功、错误)->
成功()
列表视图=新建列表视图
HTML是:
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>Backbone App</title>
<link rel="stylesheet" type="text/css" href="http://netdna.bootstrapcdn.com/twitter-bootstrap/2.3.1/css/bootstrap-combined.min.css">
</head>
<body>
<div class="content"></div>
<script src="http://code.jquery.com/jquery-1.9.1.min.js"></script>
<script src="http://ajax.cdnjs.com/ajax/libs/json2/20110223/json2.js"></script>
<script src="http://cdnjs.cloudflare.com/ajax/libs/underscore.js/1.4.4/underscore-min.js"></script>
<script src="http://cdnjs.cloudflare.com/ajax/libs/backbone.js/0.9.10/backbone-min.js"></script>
<script src="app.js"></script>
</body>
</html>
主干应用程序
我很抱歉我问这个问题,我只是不明白为什么它返回“未定义”当我点击一个项目的交换按钮。找出这个问题将帮助我更多地学习和理解主干JS。下划线的
bindAll
现在不接受只有一个参数。必须列出函数或在绑定中传递参数:
@model.bind 'change', @render, this
我得到了同样的结果。我也试过这样做:但仍然没有任何帮助。我已经去掉了下划线bindAll函数,并在render、unender和appendItem函数上使用了粗箭头。同样的结果…您在应该使用
'part1'
和'part2'
的地方使用了'part2'
和'part1'
,这些额外的空格会导致您的问题。
@model.bind 'change', @render, this