看起来其他人在尝试创建Backbone View时遇到了类似的问题。但我认为我的问题不同。以下是我如何在页面中包含Backbone。
<script type="text/javascript" src="/js/jquery.min.js"></script>
<script type="text/javascript"></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>
我在调用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);
}
);
在第一个警告中,我得到:
VERSION: string
$: function
noConflict: function
emulateHTTP: boolean
emulateJSON: boolean
Events: object
在第二个警告中,我根本就没有得到任何东西。
在第三个警告中,我得到了“未定义”。
Firebug给出的错误消息是“TypeError:h未定义”,并且它指向backbone-min.js文件的某个深处。
我正在按照http://backbonejs.org/docs/todos.html中的Todos示例进行操作。 在该示例中,他们的第一件事是在jQuery文档准备好函数中扩展Backbone.Model类。 这就是我所做的一切。 但是,在那一点上,Backbone.Model类甚至不存在。
我没有尝试访问this.Model。 我从来没有达到过一个我可以访问this的代码点。 Model类仅在Backbone对象中未定义。 我需要包含除backbone-min.js文件以外的其他内容吗?
JQuery > Underscore > Backbone
- Mike R