我的文件系统中有json文件。有没有办法将内容加载到变量?
我试过了:
vm.timeZones = require("timezones.json");
但它会出现此错误:
ReferenceError: require is not defined
答案 0 :(得分:2)
jQuery.getJSON()应该有所帮助。
参考链接:JQuery.getJSON
$.getJSON("test.json", function(json) {
console.log(json); // this will show the info it in firebug console
});
function loadJSON(callback) {
var xobj = new XMLHttpRequest();
xobj.overrideMimeType("application/json");
xobj.open('GET', 'my_data.json', true); // Replace 'my_data' with the path to your file
xobj.onreadystatechange = function () {
if (xobj.readyState == 4 && xobj.status == "200") {
// Required use of an anonymous callback as .open will NOT return a value but simply returns undefined in asynchronous mode
callback(xobj.responseText);
}
};
xobj.send(null);
}
function init() {
loadJSON(function(response) {
// Parse JSON string into object
var actual_JSON = JSON.parse(response);
});
}
答案 1 :(得分:0)
可能不是。
如果您是通过HTTP而不是直接从文件系统读取数据,那么您可以使用XMLHttpRequest对象(或者,在较新的浏览器中,获取)Angular摘要通过$http
。
如果您使用的是Firefox,则可以使用该方法读取与HTML文档位于同一目录(或其子目录)中的本地文件。其他浏览器有更严格的安全规则。
如果您允许用户选择文件(通过<input type="file">
),那么您可以使用FileReader API。
答案 2 :(得分:0)
$http.get("timeZones.json")
.then(function onSuccess(response) {
// Handle success
var data = response.data;
var status = response.status;
var statusText = response.statusText;
var headers = response.headers;
var config = response.config;
//...
vm.timeZones = data;
})
.catch(function onError(response) {
// Handle error
var data = response.data;
var status = response.status;
var statusText = response.statusText;
var headers = response.headers;
var config = response.config;
//...
});
有关详细信息,请参阅AngularJS $http Service API Reference。