【问题标题】:Backbone.js Collection errorBackbone.js 集合错误
【发布时间】:2014-04-12 09:24:47
【问题描述】:

我用 Backbone 创建了一个小的自动建议应用程序,它可以在自己的页面中运行 (http://www.alexbarron.co.uk/bbExample)。但是,当我将它集成到我的网站时,我的一个集合的 this.model 属性永远不会被设置。调试到这里,发现集成版和单机版的区别就是从这里开始的。

两页的脚本顺序是一样的。

复制:

  1. 请访问:http://alexbarron.co.uk/projects/tree-categories-autosuggest/demos/backbone-js
  2. 键入“蝙蝠”
  3. 选择蝙蝠侠
  4. 检查控制台。 Collection 构造函数中的 this.model 永远不会被设置。在我的独立版本中,这设置为:

function (){ return parent.apply(this, arguments); }

任何帮助将不胜感激。

【问题讨论】:

    标签: javascript backbone.js


    【解决方案1】:

    问题是collection.js和model.js的下载顺序。 我在第一行的 collection.js 和 model.js 中放了一个断点,这样当文件被解释时,断点就会被命中。 首先下载了 collection.js 并将模型设置为未定义,因为尚未下载包含 TreeCategoriesAutoSuggest.Models.Category 的 model.js:

    TreeCategoriesAutoSuggest.Collections.Suggestions = TreeCategoriesAutoSuggest.Collections.SelectedCategories = Backbone.Collection.extend({
        model: TreeCategoriesAutoSuggest.Models.Category
    });
    

    在 index.html 中,更改顺序。先放置model.js,再放置collection.js,如下图。

    <script type="text/javascript" src="/frontend/javascripts/projects/tree-categories-autosuggest/demos/backbone-js/models.js"></script>
    <script type="text/javascript" src="/frontend/javascripts/projects/tree-categories-autosuggest/demos/backbone-js/collections.js"></script>
    

    【讨论】:

      猜你喜欢
      • 2012-05-10
      • 1970-01-01
      • 2012-10-30
      • 2011-12-19
      • 2014-03-12
      • 2012-11-30
      • 2023-03-10
      • 1970-01-01
      相关资源
      最近更新 更多