我目前正在学习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"]
有人可以给我一些见解吗? :)
答案 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); }