在集合中初始化属性

时间:2014-01-29 06:44:02

标签: javascript backbone.js

我目前正在学习骨干,并试图解开为什么需要初始化函数的视图和集合?

以下是我的一些代码:

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。我尝试更改属性的名称,但它不起作用。这是骨干中的保留字还是关键字?为什么需要它?谢谢!

1 个答案:

答案 0 :(得分:1)

Initialize是一个特殊功能(即“保留”)。如果它是在视图/模型/集合上定义的,它将在视图/模型/集合实例化时执行(即,当您调用new时)。因此,如果您更改其名称,Backbone将不再自动调用它...