Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/backbone.js/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Backbone.js幕后_Backbone.js - Fatal编程技术网

Backbone.js幕后

Backbone.js幕后,backbone.js,Backbone.js,我读了几篇关于Backbone.js的文章,其中包括一些示例应用程序,但我找不到关于Backbone如何知道何时单击视图中的小部件以及它绑定到哪个模型的解释或示例 它是通过内部分配ID或其他方式处理的吗 例如,如果要删除id=“123”的div,可以使用jQuery或javascript函数将其从DOM中删除。在主干网中,这个div可以没有id,但可以在不知道的情况下删除,对吗 如果有人知道一篇好文章,或者可以提高我对这篇文章的理解,那就太好了。检查 即使看起来很复杂,也没什么可学的,相信我 如

我读了几篇关于Backbone.js的文章,其中包括一些示例应用程序,但我找不到关于Backbone如何知道何时单击视图中的小部件以及它绑定到哪个模型的解释或示例

它是通过内部分配ID或其他方式处理的吗

例如,如果要删除id=“123”的div,可以使用jQuery或javascript函数将其从DOM中删除。在主干网中,这个div可以没有id,但可以在不知道的情况下删除,对吗

如果有人知道一篇好文章,或者可以提高我对这篇文章的理解,那就太好了。

检查

即使看起来很复杂,也没什么可学的,相信我

如果你问得更具体些,我可以试着帮你。

检查

即使看起来很复杂,也没什么可学的,相信我


如果你问得更具体些,我可以试着帮你。

阅读资料可能是提高理解力的最佳选择。您要查看的主干函数称为delegateEvents。但简短的版本是它使用了这个函数。根元素是视图的元素(
el
属性),它由您提供的任何选择器进行过滤


jQuery实际上并没有将处理程序绑定到您正在侦听的每个元素。相反,它让事件冒泡到根元素并在那里检查它们。因为每个元素都没有附加任何内容,所以可以自由删除它们,而不会造成任何问题。但是,删除视图元素的某些方法(例如,通过在父元素上设置innerHTML)可能会导致内存泄漏。我不是百分之百确定,但可能最好还是不要那样做

阅读资料可能是提高理解力的最佳选择。您要查看的主干函数称为delegateEvents。但简短的版本是它使用了这个函数。根元素是视图的元素(
el
属性),它由您提供的任何选择器进行过滤

jQuery实际上并没有将处理程序绑定到您正在侦听的每个元素。相反,它让事件冒泡到根元素并在那里检查它们。因为每个元素都没有附加任何内容,所以可以自由删除它们,而不会造成任何问题。但是,删除视图元素的某些方法(例如,通过在父元素上设置innerHTML)可能会导致内存泄漏。我不是百分之百确定,但可能最好还是不要那样做

视图“知道”其绑定到的模型的方式是通过如下所示的_configure方法完成的:

_configure: function(options) {
  if (this.options) options = _.extend({}, this.options, options);
  for (var i = 0, l = viewOptions.length; i < l; i++) {
    var attr = viewOptions[i];
    if (options[attr]) this[attr] = options[attr];
  }
  this.options = options;
}
这个循环是视图和模型或视图和集合之间的“粘合剂”。如果它们出现在选项中,则会自动分配它们

所有这些都是通过如下所示的配置方法来实现的。

视图“知道”绑定到的模型的方式:

_configure: function(options) {
  if (this.options) options = _.extend({}, this.options, options);
  for (var i = 0, l = viewOptions.length; i < l; i++) {
    var attr = viewOptions[i];
    if (options[attr]) this[attr] = options[attr];
  }
  this.options = options;
}
这个循环是视图和模型或视图和集合之间的“粘合剂”。如果它们出现在选项中,则会自动分配它们


所有这些都在文件中。

不,这不是我要问的。我已经熟悉了基本知识。我知道它是如何通过编程绑定的。但是内部是如何处理的呢?好的。。尝试阅读backbone.js的“dev”版本,即带有注释的版本。。我相信你会找到的。显然,也要使用调试器(Chrome/Firebug/IE/etc)。它不可能太神秘,因为它很小。我害怕这种回答。我想为人类阅读它,而不必为此付出太多努力;)不,那不是我要问的。我已经熟悉了基本知识。我知道它是如何通过编程绑定的。但是内部是如何处理的呢?好的。。尝试阅读backbone.js的“dev”版本,即带有注释的版本。。我相信你会找到的。显然,也要使用调试器(Chrome/Firebug/IE/etc)。它不可能太神秘,因为它很小。我害怕这种回答。我想为人类阅读它,而不必为此付出太多努力;)
var viewOptions = ['model', 'collection', 'el', 'id', 'attributes', 'className', 'tagName'];