我需要显示一个javascript类的实例,它使用.json文件中的数据加载,并在主干中使用require.js。
我有以下js和json文件:
集合/ Companies.js
define([
'models/Company'
], function(CompanyModel) {
'use strict';
var CompanyCollection = Backbone.Collection.extend({
model: CompanyModel
});
return CompanyCollection;
});
数据/ companies.json
[{
"id": 1000001,
"name": "Test Company 1",
"description": "this is a test company that should be displayed"
},
{
"id": 1000002,
"name": "Test Company 2",
"description": "this is another test company that should be displayed as well"
}]
另外,我有以下代码段:
<script type="text/javascript" data-main="data/companies.json" src="collections/Companies.js"></script>
<script type="text/javascript">
require(["collections/Companies"],
function(Companies){
$("#json").append(Companies[0].id);
alert("test");
}
);
</script>
<div id="json"></div>
当然它没有按照我的意图工作,我无法弄清楚正确的语法和/或迭代逻辑。
如何使用.json文件中的数据加载.js类?
我的<script type="text/javascript" data-main...
行似乎不起作用。
如果我不够清楚,请提前致谢并抱歉。
答案 0 :(得分:0)
requirejs
通常用于加载脚本和模板文件,但您也可以使用它来加载.json
文件。但你必须使用JSON.parse
自己解析它。
您有两种不同的选择,
使用requirejs text plugin,例如:
require(["collections/Companies", "text!data/companies.json"],
function(Companies, CompaniesJSONStr) {
var CompaniesJSON = JSON.parse(CompaniesJSONStr);
}
);
或使用requirejs plugins,它再次使用text!
插件:
require.config({
paths : {
json: 'data'
}
});
define([ 'collections/Companies', 'json!companies.json' ],
function(Companies, CompaniesJSON){
}
);