Backbone 下划线版本错误
Backbone Underscore Version Error
我刚开始学习如何使用 backbone(和下划线)制作单视图应用程序。我阅读了教程,但是当我尝试复制 backbone 应用程序的最基本版本并将其放在我的服务器上时,出现错误。代码没问题,但过了一会儿,我发现我的 backbone.js 和 underscore.js 文件不能一起工作。
所以我从他们的网站下载了最新版本:仍然无法正常工作......
我做错了什么?
感谢您的回答。
这是我的代码:
index.html
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>hello-backbonejs</title>
</head>
<body>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.6.1/jquery.min.js"></script>
<script src="http://ajax.cdnjs.com/ajax/libs/json2/20110223/json2.js"></script>
<script src="http://ajax.cdnjs.com/ajax/libs/underscore.js/1.1.6/underscore-min.js"></script>
<script src="http://cdnjs.cloudflare.com/ajax/libs/backbone.js/1.1.0/backbone-min.js"></script>
<script src="js/1.js" type="text/javascript"></script>
</body>
</html>
和:
js/1.js
$(function() {
var ListView = Backbone.View.extend({
el: $('body'), // attaches `this.el` to an existing element.
initialize: function(){
_.bindAll(this, 'render'); // fixes loss of context for 'this' within methods
this.render(); // not all views are self-rendering. This one is.
},
render: function(){
$(this.el).append("<ul> <li>hello world</li> </ul>");
}
});
var listView = new ListView();
});
JQuery 和 JSon2 工作正常。 backbone 和下划线在这里分叉,但我也尝试使用最新版本。
编辑:
我现在尝试了下面的两行和 JQuery 的最新版本:
<script src="http://ajax.cdnjs.com/ajax/libs/underscore.js/1.7.0/underscore-min.js"></script>
<script src="http://cdnjs.cloudflare.com/ajax/libs/backbone.js/1.1.0/backbone-min.js"></script>
<script type="text/javascript" src="js/jquery-1.11.2.js"></script>
但我仍然收到此错误:
[Error] TypeError: undefined is not a valid argument for 'instanceof' (evaluating 't instanceof a.$')
setElement (backbone-min.js, line 1)
_ensureElement (backbone-min.js, line 1)
View (backbone-min.js, line 1)
r (backbone-min.js, line 1)
(anonyme Funktion) (1.js, line 14)
fire (jquery-1.11.2.js, line 3143)
fireWith (jquery-1.11.2.js, line 3255)
ready (jquery-1.11.2.js, line 3467)
completed (jquery-1.11.2.js, line 3498)
已解决:
谢谢大家。我刚刚在一个较新的 tut 中找到了一个组合,它工作正常:
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js"></script>
<script src="http://documentcloud.github.com/underscore/underscore-min.js"></script>
<script src="http://documentcloud.github.com/backbone/backbone-min.js"></script>
<script src="http://ajax.cdnjs.com/ajax/libs/underscore.js/1.7.0/underscore-min.js"></script>
<script src="http://cdnjs.cloudflare.com/ajax/libs/backbone.js/1.1.0/backbone-min.js"></script>
简化你的下划线版本太旧,使用1.7.0版本。您正在使用的 backbone 版本尝试使用 _.has
,它仅在下划线版本 1.3.1
中引入
我刚开始学习如何使用 backbone(和下划线)制作单视图应用程序。我阅读了教程,但是当我尝试复制 backbone 应用程序的最基本版本并将其放在我的服务器上时,出现错误。代码没问题,但过了一会儿,我发现我的 backbone.js 和 underscore.js 文件不能一起工作。 所以我从他们的网站下载了最新版本:仍然无法正常工作...... 我做错了什么?
感谢您的回答。
这是我的代码: index.html
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>hello-backbonejs</title>
</head>
<body>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.6.1/jquery.min.js"></script>
<script src="http://ajax.cdnjs.com/ajax/libs/json2/20110223/json2.js"></script>
<script src="http://ajax.cdnjs.com/ajax/libs/underscore.js/1.1.6/underscore-min.js"></script>
<script src="http://cdnjs.cloudflare.com/ajax/libs/backbone.js/1.1.0/backbone-min.js"></script>
<script src="js/1.js" type="text/javascript"></script>
</body>
</html>
和: js/1.js
$(function() {
var ListView = Backbone.View.extend({
el: $('body'), // attaches `this.el` to an existing element.
initialize: function(){
_.bindAll(this, 'render'); // fixes loss of context for 'this' within methods
this.render(); // not all views are self-rendering. This one is.
},
render: function(){
$(this.el).append("<ul> <li>hello world</li> </ul>");
}
});
var listView = new ListView();
});
JQuery 和 JSon2 工作正常。 backbone 和下划线在这里分叉,但我也尝试使用最新版本。
编辑:
我现在尝试了下面的两行和 JQuery 的最新版本:
<script src="http://ajax.cdnjs.com/ajax/libs/underscore.js/1.7.0/underscore-min.js"></script>
<script src="http://cdnjs.cloudflare.com/ajax/libs/backbone.js/1.1.0/backbone-min.js"></script>
<script type="text/javascript" src="js/jquery-1.11.2.js"></script>
但我仍然收到此错误:
[Error] TypeError: undefined is not a valid argument for 'instanceof' (evaluating 't instanceof a.$')
setElement (backbone-min.js, line 1)
_ensureElement (backbone-min.js, line 1)
View (backbone-min.js, line 1)
r (backbone-min.js, line 1)
(anonyme Funktion) (1.js, line 14)
fire (jquery-1.11.2.js, line 3143)
fireWith (jquery-1.11.2.js, line 3255)
ready (jquery-1.11.2.js, line 3467)
completed (jquery-1.11.2.js, line 3498)
已解决:
谢谢大家。我刚刚在一个较新的 tut 中找到了一个组合,它工作正常:
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js"></script>
<script src="http://documentcloud.github.com/underscore/underscore-min.js"></script>
<script src="http://documentcloud.github.com/backbone/backbone-min.js"></script>
<script src="http://ajax.cdnjs.com/ajax/libs/underscore.js/1.7.0/underscore-min.js"></script>
<script src="http://cdnjs.cloudflare.com/ajax/libs/backbone.js/1.1.0/backbone-min.js"></script>
简化你的下划线版本太旧,使用1.7.0版本。您正在使用的 backbone 版本尝试使用 _.has
,它仅在下划线版本 1.3.1