Backbone.Model未定义

use*_*811 3 model undefined backbone.js

看起来其他人在尝试创建Backbone View时遇到了类似的问题.但我认为我的问题不同了.以下是我在页面中包含骨干的方法.

<script type="text/javascript" src="/js/jquery.min.js"></script>
<script type="text/javascript">
    //<!--
    jQuery.noConflict ();
    //-->
</script>
<!--[if lt IE 9]><script type="text/javascript" src="/js/html5.js"></script><![endif]-->
<script type="text/javascript" src="/js/backbone-min.js"></script>
<script type="text/javascript" src="/js/showbase.js"></script>
Run Code Online (Sandbox Code Playgroud)

我添加了对jQuery.noConflict()的调用,因为我认为这可能是问题所在.事实并非如此.

这是我到目前为止在showbase.js文件中的内容.这个简单的测试失败了

jQuery (document).ready (
            function ()
            {
                var props = '';
                for (var p in Backbone)
                    props += p + ': ' + typeof Backbone [p] + "\n";
                alert (props);

                props = '';
                for (var p in Backbone.Model)
                    props += p + ': ' + typeof Backbone.Model [p] + "\n";
                alert (props);

                alert (typeof Backbone.Model);
            }
);
Run Code Online (Sandbox Code Playgroud)

在第一个警报中,我得到:

VERSION: string
$: function
noConflict: function
emulateHTTP: boolean
emulateJSON: boolean
Events: object
Run Code Online (Sandbox Code Playgroud)

在第二次警报中,我什么都没得到.

在第三个警报中,我得到"未定义".

我从Firebug得到的错误消息说"TypeError:h未定义",它指向我深入到backbone-min.js文件的某个地方.

我在http://backbonejs.org/docs/todos.html上关注Todos示例.在该示例中,他们做的第一件事是在jQuery文档就绪函数中扩展Backbone.Model类.这就是我所做的一切.但是Backbone.Model类在那时甚至不存在.

我不是想要访问这个.模型.我从来没有在我的代码中找到一个我可以访问它的点.Model类在Backbone对象中是未定义的.我是否需要包含backbone-min.js文件以外的内容?

use*_*811 7

问题是没有包括underscore.js.正如Loamhoof指出的那样,这是backbone.js所要求的.

我做了一些进一步的研究.根据这个页面,backbone只依赖于json2.js来提供JSON.parse和JSON.stringify函数,它们现在是大多数浏览器中普通javascript的一部分.因此,根据该页面上的评论,只需要json2.js来支持不提供JSON功能的旧浏览器.