【发布时间】:2012-09-03 15:19:50
【问题描述】:
我有一个backbone.js 错误:
未捕获的类型错误:无法使用 'in' 运算符搜索 'id' in {"websiteID":"2","title":"titre site 2"} 主干-min.js:9
我正在尝试将 json 数据(从 ajax 接收)复制到模型的实例中。
我该如何解决这个问题?
我的代码是:
var Website = Backbone.Model.extend({
// set default json data in the website:
defaults: {"websiteID":"1","title":"default title"}
});
var website = new Website();
function UpdateWebsiteBasedOnDBData() {
this.url = 'script.php';
}
UpdateWebsiteBasedOnDBData.prototype.readData = function(dataToGet) {
return $.ajax({
type: "GET",
url: this.url,
data: dataToGet,
context: this,
success: this.onSuccess
});
};
UpdateWebsiteBasedOnDBData.prototype.onSuccess = function(data) {
website.set(data);
alert( website.get("websiteID") );
};
$(document).ready(function() {
var updateWebsiteBasedOnDBData = new UpdateWebsiteBasedOnDBData();
updateWebsiteBasedOnDBData.readData({"websiteID": 2});
});
script.php 返回正确的 json:
{"websiteID":"2","title":"网站名称 2"}
更新:
我仍然需要检查,但我强烈怀疑我的 json 实际上是无效的。 根本原因可能是(仍有待验证)我的 php 脚本的字符集。
【问题讨论】:
-
即使我将
data包装为字符串,我也无法重现问题check the jsFiddle。你能分叉我的 jsFiddle 并重现这个问题吗? 您的代码的哪一行会产生错误? (按照错误回溯,直到找到一行代码) -
正如@JayC 所说...您使用的是哪个版本的 Backbone?
-
@fguillen 感谢 jsfiddle。我正在使用 underscore.js/1.1.4 和主干.js/0.3.3。但我怀疑我的 Json 数据有问题。我认为我的 PHP 脚本弄乱了我的 json。
-
看在上帝的份上,更新! :)
underscore.js/1.3.3和backbone.js/0.9.2如果不是,你会发现自己独自面对你的问题 -
@fguillen 哇,我需要更新。谢谢!
标签: json backbone.js