如何使用RequireJS加载JSON.js库,以使Backbone应用程序在IE7中工作



我已经设法使我的Backbone应用程序与IE8-IE Edge一起工作。。。Yey:)

最后一块石头是IE7-我得到以下主干错误:

'JSON' is undefined - file: backbone.js

IE控制台突出显示了骨干库代码的某些部分:

s.data=JSON.stringify(i.attrs||e.toJSON(i)

根据我读到的内容,我必须加载JSON2或JSON3库,因为IE7没有它

好的,在谷歌上搜索并转到以下库-JSON 3:

http://cdnjs.cloudflare.com/ajax/libs/json3/3.2.6/json3.min.js

现在,我使用require-js来加载我的应用程序,我不知道如何将其与我的应用配置集成

它的依赖项是什么,它导出什么

以下是我对require-js:的配置

/**
*  Config.
*/
require.config({
paths: {
"jquery" : "libs/jquery",
"underscore" : "libs/underscore",
"backbone" : "libs/backbone",
"text" : "libs/require/text",
"global" : "libs/global",
templates: '../templates'
},
shim: {
backbone: {
deps: ["underscore", "jquery"],
exports: "Backbone"
},
underscore: {
exports: '_'
},
text : {
exports : 'text'
}
},
global : {
deps: ["jquery"],
exports : 'Global'
}
});
require([
'jquery',
'underscore',
'backbone',
'router',
'global'
], function ($, _, Backbone, Router) {
// Compatibility override, add a close function for the Backbone views.
var router = new Router();
Backbone.history.start();
});

有什么想法吗?

首先将json库添加到您的路径配置中:

paths: {
"json": "http://cdnjs.cloudflare.com/ajax/libs/json3/3.2.6/json3.min.js",
"jquery" : "libs/jquery",
"underscore" : "libs/underscore",
"backbone" : "libs/backbone",
"text" : "libs/require/text",
"global" : "libs/global",
templates: '../templates'
},

json库没有依赖项,并导出一个全局变量json。您需要使主干库依赖于json库,并使用填充配置加载json库。见下文:

shim: {
json: {
exports: 'JSON'
},
backbone: {
deps: ["underscore", "jquery", "json"],
exports: "Backbone"
},
underscore: {
exports: '_'
},
text: {
exports: 'text'
}
}

最新更新