backbone.js基本问题

时间:2012-03-19 13:39:13

标签: jquery backbone.js

(function($){
  var ListView = Backbone.View.extend({    
    el: $('body'),

    initialize: function(){
      _.bindAll(this, 'render');
       this.render();
    },

    render: function(){
      $(this.el).append("<ul> <li>Hello Yupeee</li> </ul>");
    }
  });

  var listView = new ListView();      
})(jQuery);
  1. 为什么我们传递jQuery作为参数。
  2. el: $('body')是什么意思?
  3. _.bindAll(this, 'render');做什么?
  4. 假设我需要另一个元素,让我们采用文字字段或其他东西......我将如何使用它...我应该在渲染功能中添加所有元素...
  5. 在使用backbone.js
  6. 之前,我应该知道JQuery吗?

2 个答案:

答案 0 :(得分:3)

  1. 我们在自我执行中将jQuery对象限定为$ 匿名功能。因此,在函数内部与可能使用$ variable的其他库没有冲突。
  2. 在骨干网中,视图将自身绑定到html dom元素。如果未指定,则为空'div'。所以在这种情况下它指的是身体。
  3. 它将确保在正确的上下文“this”中调用render方法,您希望将其作为当前视图对象。
  4. 通常使用下划线模板引擎或您选择的任何人创建模板。你也可以创建html元素作为字符串,骨干在任何情况下都不会真正关心。然后将它作为el绑定到视图。通过编译模板或直接html。
  5. 你应该知道javascript,一般事件绑定和jQuery选择器。虽然backbone表示你不需要jQuery,但知道它绝对是好事。

答案 1 :(得分:0)

  1. 在开始执行块之前,这种语法的作用类似于$ = jQuery
  2. 它将初始化this.el指向DOM元素body
  3. 它会修改对render方法的调用,因此(render.context).this将始终是实际thisCheck Underscore's bindAll documentation。这听起来很奇怪,但在JS的上下文中,如果非常 volatile :)
  4. 是的,但templates可能会有所帮助。
  5. 它也有帮助,Underscore