在视图中引用HTML元素,一个约定?

时间:2014-04-07 08:48:55

标签: backbone.js

我目前正在学习Backbone.js,并且正在使用“开发骨干网应用程序”一书。

我对HTML元素的引用及其存储方式有疑问。例如:

   initialize: function() {
        this.$input = this.$('#new-todo');

这里带有ID待办事项的HTML元素存储在这个。$输入中,为什么我们在输入前使用$,这仅仅是一个约定?如果我改变这个。$输入到this.input我的代码工作正常。我发现这令人困惑,因为该书指出:

  

视图。$ el属性相当于 $(view.el)视图。$(选择器)相当于 $(view.el).find(选择器)即可。

我认为$(view.el)与(view.el)完全不同。

这个。$输入如何保存在Backbone.js中?如果我console.log它,它会产生:

Object[input#new-todo property value = "" attribute value = "null"]

有人可以给我一些见解吗? :)

1 个答案:

答案 0 :(得分:1)

  • 使用$ infront变量名只是一个命名约定。它可以帮助开发人员区分保存jQuery对象的变量。

  • view。$ el是Backbone提供的辅助变量,因此我们可以直接使用它,而不是显式地形成jQuery对象。因此,观点。$ el相当于$(view.el)。

view。$ el在setElement方法中分配:

setElement: function(element, delegate) {
   // Some code
   this.$el = element instanceof Backbone.$ ? element : Backbone.$(element);
   // Some code
}

Backbone。$是对jQuery导出的$ global变量的引用。

  • view。$(selector)是View中定义的方法。它的定义与$(view.el).find(selector)

    完全相同

    $:function(selector){     返回此。$ el.find(selector); }