看起来其他人在尝试创建主干视图时遇到了类似的问题。但我认为我的问题是不同的。这是我在页面中包含主干的方式。
<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>
我添加了对 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 is undefined”,它指向我在某个地方的主干-min.js 文件深处。
我正在关注http://backbonejs.org/docs/todos.html上的 Todos 示例。在那个例子中,他们做的第一件事是在 jQuery 文档就绪函数中扩展 Backbone.Model 类。这就是我正在做的一切。但是此时 Backbone.Model 类甚至都不存在。
我不想访问 this.Model。我从来没有在我的代码中达到可以访问 this 的点。Model 类在 Backbone 对象中未定义。除了主干-min.js 文件之外,我还需要包含其他内容吗?