Backbone 错误从何而来?

奥宾娜·恩瓦奎

所以,我正在使用 Backbone 创建一个基本视图,当我去运行它时,我得到这个 TypeError:

Uncaught TypeError: Right-hand side of instanceof is not an object

错误是在backbone.min.js文件中以及程序中第18行中引用了多个点这是代码:

<!DOCTYPE HTML>

<HTML>
   <HEAD>
     <META CHARSET="UTF-8" />
     <TITLE>First View</TITLE>
     <script src="https://cdnjs.cloudflare.com/ajax/libs/underscore.js/1.3.3/underscore-min.js"></script>
     <script src="https://cdnjs.cloudflare.com/ajax/libs/backbone.js/1.0.0/backbone-min.js"></script>
     <SCRIPT LANGUAGE="Javascript">
         var PokeView = Backbone.View.extend({
             render: function() {
                 this.$el.html("Simisage");

                 return this;
             }
         });

         var myPokeView = new PokeView({ el: "#paragraph" });

         console.log(myPokeView instanceof Object);
         myPokeView.render();
     </SCRIPT>
 </HEAD>
 <BODY>
     <p id="paragraph"></p>
 </BODY>

我一直在寻找互联网,有些人遇到了同样的错误,但它与 Backbone 无关。Backbone的解决方案与其他解决方案一样吗?我怎样才能解决这个问题?

埃米尔·伯杰龙
  1. 使用目前最新版本的 Backbone 1.3.3。
  2. 在开发过程中使用任何库非缩小版本甚至还有一个很大的开发版本按钮来下载 Backbone 源文件。
  3. 仔细阅读依赖列表,对于1.0.0 版本的 Backbone是:

    Backbone唯一的硬依赖性是Underscore.js(> = 1.4.3)。对于 RESTful 持久性,通过 Backbone.Router 的历史支持和使用 Backbone.View 的 DOM 操作,包括json2.jsjQuery (>= 1.7.0) 或Zepto

    对于1.3.3 版

    Backbone 唯一的硬依赖项是Underscore.js ( >= 1.8.3)。对于使用Backbone.View 的RESTful 持久性和 DOM 操作,包括jQuery (>= 1.11.0) 和json2.js以支持较旧的 Internet Explorer。Underscore和 jQuery API 的模仿物,例如LodashZepto,也将趋于有效,但具有不同程度的兼容性。)

因此,在您共享的代码中,似乎缺少 jQuery。只需将它包含在其他库之前,您就应该准备好使用 Backbone。

另外,请注意,在执行该脚本片段时,您正在使用文档中尚不存在的带有元素的视图el选项#paragraph要解决此问题,请将脚本标记放在正文的底部。

<html>
<head>
    <meta charset="UTF-8" />
    <title>First View</title>
</head>
<body>
    <p id="paragraph"></p>

    <script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.2.1/jquery.js"></script>
    <script src="https://cdnjs.cloudflare.com/ajax/libs/underscore.js/1.3.3/underscore.js"></script>
    <script src="https://cdnjs.cloudflare.com/ajax/libs/backbone.js/1.3.3/backbone.js"></script>
    <script>
        var PokeView = Backbone.View.extend({
            render: function() {
                this.$el.html("Simisage");
                return this;
            }
        });

        var myPokeView = new PokeView({ el: "#paragraph" });

        console.log(myPokeView instanceof Object);
        myPokeView.render();
    </script>
</body>
</html>

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章