underscore.js .map方法打破了ie8

时间:2012-08-07 08:12:31

标签: javascript json backbone.js internet-explorer-8 underscore.js

我使用backbone.js,除了Internet Explorer之外,这个代码在所有现代浏览器中运行良好。

var posts = postList.map(function(model){ return model.toJSON(); });

toJSON()方法有问题,我该怎么办?

修改:

var posts = postList.map(function(model){ return model });

没有toJSON(),仍然无法正常工作,也许.map方法是有罪的吗?

3 个答案:

答案 0 :(得分:2)

我找到了解决方案:

var posts = _.map(postsList, function(model) { return model; });

答案 1 :(得分:1)

{1.8}中引入了toJSON方法。

对于没有JavaScript 1.8.5的浏览器,您可以使用Douglas Crockford的polyfill脚本。

https://github.com/douglascrockford/JSON-js

答案 2 :(得分:0)

对我来说,在ie8上,答案结果是_.map@1.7.0正在迭代一个对象中的所有属性(postslist一个哈希?),包括继承的Object.prototype.toString方法。 这导致服务器的帖子看起来像这样:

{ a:1,b:2, /* ... */ toString:'function(){ [native code] }'}

带有一些无关的换行符回车字符。添加其中,导致服务器窒息。