Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/backbone.js/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Backbone.js 遵循主干JS和CoffeeScript教程,有问题吗_Backbone.js_Coffeescript - Fatal编程技术网

Backbone.js 遵循主干JS和CoffeeScript教程,有问题吗

Backbone.js 遵循主干JS和CoffeeScript教程,有问题吗,backbone.js,coffeescript,Backbone.js,Coffeescript,我将学习本教程: 到目前为止,一切都还可以,除了在最后一节(5)中实现“交换”功能。当这种情况发生时,我得到的是“undefined”返回,而不是应该返回的内容。请参阅教程了解应该发生什么 我没有发现代码上的差异 我的如下:(用咖啡脚本) jQuery-> 类项扩展了主干.Model 默认值: 第一部分:“嗨” 第二部分:“主干” 类列表扩展了主干。集合 型号:项目 类ItemView扩展了主干.View 标记名:“li” 初始化:-> _宾德尔先生@ @model.bind“更改”,@rend

我将学习本教程:

到目前为止,一切都还可以,除了在最后一节(5)中实现“交换”功能。当这种情况发生时,我得到的是“undefined”返回,而不是应该返回的内容。请参阅教程了解应该发生什么

我没有发现代码上的差异

我的如下:(用咖啡脚本)

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