javascript - Parse.View.extend - "cannot read property ' 未定义的扩展”

标签 javascript backbone.js parse-platform sdk underscore.js

目前正在将 Parse JavaScript SDK 用于 Web 应用程序,但我对 Backbone 也很陌生,并且由于这个特殊问题在于 Parse 从 Backbone 复制的功能,所以我不确定我到底在哪里制作我的错误。

我有index.html ,具有以下基本结构和脚本模板标记(由 _underscore 使用):

<div id="my-app">        

</div>
<script type="text/template" id="album-header-template">
    <div id="some-id">
          Some Content
    </div>
</script>

<body>结尾,以下脚本标签,用于处理 Parse 依赖项、加载 Parse 并使用我自己的 JS 文件:

<script src="libraries/node_modules/jquery/dist/jquery.min.js"></script>
<script src="libraries/node_modules/underscore/underscore-min.js"></script>
<script src="libraries/node_modules/parse/dist/parse-latest.min.js"></script>
<script src="app/ParseApp.js"></script>

然后在 ParseApp.js ,我试图通过创建简单的对象和 View 来开始工作,我有以下内容:

$(function () {
    var Album = Parse.Object.extend("Album",{
            // Default attributes for the album
            defaults: {
              name: "Album Title"
            },

            // Ensure that each album created has a title
            initialize: function() {
              if (!this.get("name")) {
                this.set({"name": this.defaults.content});
              }
            },
        });

    var HomeView = Parse.View.extend({
        el: $("#my-app"),

        initialize: function() {
            console.log("new instance of HomeView");
            this.render();
        },

        render: function() {
            this.$el.html(_.template($("#album-header-template").html()));
        }
    });

    new HomeView;
});

当我运行index.html时在浏览器中,我在控制台中收到以下错误:Uncaught TypeError: Cannot read property 'extend' of undefined (发生在 var Home View = Parse.View.extend 行)。

最初,我以为这可能是因为 Parse 没有及时启动 ParseApp.js根据我的脚本加载来使用它。但是,我运行了推荐的"Test the SDK" script来自 Parse,它确实已初始化(此外,使用 var Album 添加对象效果很好)。所以我真的很困惑是什么导致了 HomeViewParse.View为“未定义”。

这可能是一个我忽略的简单答案,但我们将不胜感激任何帮助,如果需要,我可以提供完整的文件。

最佳答案

这不是一个非常令人满意的答案,但感谢 @Yura 和 @Daniel Blank 的帮助,发现导致错误的原因是 Parse SDK 的最新版本(1.6.0 之后的所有版本)不再包含完整的 Backbone 功能。这包括我在 npm 本地使用的版本。

Parse SDK 方向的最佳解释在上面给出的链接中,对于那些希望继续使用 Parse 和/或 Backbone 的人来说,似乎有三个选项:

  1. 使用旧版本(1.5.0 是包含 Backbone 功能的最新版本)来维护您的 Backbone 功能,例如 Parse.CollectionParse.Router.
  2. 尝试与 Parse SDK 无关,同时继续使用 Backbone。可以使用基本的 Parse REST API,或尝试 the GitHub projects 之一尝试为您进行链接。
  3. 放弃 Backbone,并使用 Parse 和 VanillaJS,或者 switch over to React (这显然是 Facebook 希望 Parse 发展的方向)

我缺乏经验,无法推荐这三个中的一个,尽管#1 似乎是最简单的,而#3 似乎是最容易维护的。仍在尝试做出自己的决定,但这超出了我最初问题的范围。谢谢大家的帮助。

关于javascript - Parse.View.extend - "cannot read property ' 未定义的扩展”,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33371208/

相关文章:

javascript - 使用JavaScript和HTML5音频存储和播放本地文件

javascript - 找不到文件来编辑我下载的 Python 包的 css 内容

node.js - 登录验证后快速重定向

javascript - 使用 require.js 时未加载 jquery

javascript - jQuery load() 替换整个页面而不是将内容加载到 div 中

javascript - 调用函数时出现 Backbone 问题

javascript - Backbone.Js - el 和 $el 有什么区别?

ios - 解析框架不断取消链接

arrays - 解析: Download array in swift

database-design - 使用 Parse 作为 BaaS 高效存储多个图像