首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >在Todo.js (Backbone.js教程)中引用的"todo“参数是什么?

在Todo.js (Backbone.js教程)中引用的"todo“参数是什么?
EN

Stack Overflow用户
提问于 2012-08-29 03:00:27
回答 1查看 66关注 0票数 0

在addOne(todo)中,我无法理解参数是从什么引用的:

在AppView中:

代码语言:javascript
运行
AI代码解释
复制
initialize: function(){
    Todos.bind('add', this.addOne, this);  //So "this" keyword is being passed, which refers to AppView itself
    //More code here
},

然后在addOne函数中,

代码语言:javascript
运行
AI代码解释
复制
addOne: function(todo) {
    var view = new TodoView({model: todo});
    this.$("#todo-list").append(view.render().el);
},

请在此处查看带注释的源代码:http://backbonejs.org/docs/todos.html

那么AppView不会被传递到addOne(todo)中吗?模型不应该传递到addOne()中的model: todo中吗?

谢谢

EN

回答 1

Stack Overflow用户

发布于 2012-08-29 03:04:13

作为第三个参数传递给绑定函数的this用于将函数的context绑定到当前context,而不是作为参数传递。在幕后,bind使用underscore.js's _bind()

编辑:我认为让您困惑的是,addOne方法在哪里被调用并不明显。基本上,当一个新的项目被添加到集合中时,add event就会被触发,你可以绑定到这个事件,backbone会将新添加的模型传递给绑定到这个methodevent (所以在这种情况下,addOne方法被绑定到这个事件,todo就是新的模型)。在本例中,触发add事件的是通过AppView的createOnEnter方法中的Todos.create({title: this.input.val()});创建新的todo时。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/12170324

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文