我目前正在学习骨干,并试图解开为什么需要初始化函数的视图和集合?
以下是我的一些代码:
Tasks = Backbone.Collection.extend({
//This is our Task collection and holds our Task models
initialize: function (models, options) {
console.log(options);
this.bind("add", options.view.addTaskListeners);
console.log(this.bind("add", options.view.addTaskListeners));
//Listen for new additions to the collection.
}
});
//master view
AppView = Backbone.View.extend({
el: $("body"),
initialize: function () {
this.tasks = new Tasks( null, { view: this });
// Create a task collection when the view is initialized.
// Pass it a reference to this view to create a connection between the two
},
events: {
"click #add-task": "showPrompt",
},
本教程的创建者决定使用此“初始化”属性,但初始化从未用作任务,如Tasks.initialize或AppView.initialize。我尝试更改属性的名称,但它不起作用。这是骨干中的保留字还是关键字?为什么需要它?谢谢!
答案 0 :(得分:1)
Initialize是一个特殊功能(即“保留”)。如果它是在视图/模型/集合上定义的,它将在视图/模型/集合实例化时执行(即,当您调用new
时)。因此,如果您更改其名称,Backbone将不再自动调用它...