Backbone.js未捕获的类型错误:无法使用“in”运算符在中搜索“id”

i2byvkas  于 2022-11-10  发布在  其他
关注(0)|答案(3)|浏览(123)

下面的简单代码会引发错误:
“未捕获的类型错误:无法使用'in'运算符在backbone-min.js中的Leo”中搜索'id':9
http://jsfiddle.net/nW7KF/

<!DOCTYPE html>
<html>
<head>
<title></title>
</head>
<body>
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.4.4/jquery.min.js"></script>
<script src="http://ajax.cdnjs.com/ajax/libs/underscore.js/1.1.4/underscore-min.js"></script>
<script src="http://ajax.cdnjs.com/ajax/libs/backbone.js/0.3.3/backbone-min.js"></script>
<script>
var User = Backbone.Model.extend({
    initialize: function(n) {
        this.name = n;
    }
});

var user = new User("Leo");
</script>
</body>
</html>​

我怎样才能让这段代码与Backbone.js一起工作?

pprl5pva

pprl5pva1#

您没有正确构造模型。请参阅backbone.js的文档:
在创建模型示例时,可以传入属性的初始值,这些值将在模型上设置。如果定义了初始化函数,则在创建模型时将调用该函数。

new Book({
  title: "One Thousand and One Nights",
  author: "Scheherazade"
});

因此,您可以像这样构建模型:http://jsfiddle.net/nW7KF/2/

<script>
    var User = Backbone.Model.extend({});
    var leo = new User({ name: "Leo" });
    console.log(leo.get("name"));
</script>
pzfprimi

pzfprimi2#

就在前几天,我遇到了同样的错误,问题是我使用的是较新版本的Backbone(1.2.1),它示例化模型的方式显然与以前略有不同,我一直在使用该库的1.1.1版本,但是当我更新到1.2.1时,我开始看到同样的错误。当我恢复到1.1.1时,错误就消失了。如果您看到同样的错误并进行同样的库更新,可能需要注意一些问题。

bvjxkvbb

bvjxkvbb3#

您链接的文件已过期。请更新这些文件。

<script type="text/javascript" src="https://ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js"></script>
<script type="text/javascript" src="https://ajax.cdnjs.com/ajax/libs/underscore.js/1.8.2/underscore-min.js"></script>
<script type="text/javascript" src="https://ajax.cdnjs.com/ajax/libs/backbone.js/1.2.1/backbone-min.js"></script>

相关问题