javascript-使用Polymer中的内联JSON通过URI加载JSON
作者:互联网
我正在使用Polymer制作d3.js地图组件.拓扑数据需要从json文件加载,并且由于我不希望组件依赖于URL / URI,因此我使用内联JSON而不是使用AJAX加载:
<polymer-element name="map-us">
<template>
<script id="topodata" type="application/json" src="data/us.json"></script>
/* ... more stuff ... */
</template>
<script>
Polymer('map-us', {
ready: function() {
/*
This works in regular HTML/JQuery:
var x = JSON.parse($('#myJson').html());
console.log(x.arcs);
*/
var x = JSON.parse(this.$.topodata.html());
console.log(x.arcs);
});
</script>
</polymer-element>
但是显然topdata元素没有html()方法.
这是正确的做法吗?
以及如何硫化呢?
解决方法:
无需内联JSON文件. Polymer的resolvePath函数在这里非常有用,可确保无论包含组件的位置如何,JSON文件的相对路径始终正确:
this.topojsonURI = 'data/us.json';
/* d3.json basically just makes the json call */
d3.json(this.resolvePath(this.topojsonURI), function() {
/* code rendering the map */
}
有关resolvePath here的信息.
更新(聚合物1.0):
函数名称已更改为resolveUrl:1.0 API Docs
标签:d3-js,polymer,web-component,javascript 来源: https://codeday.me/bug/20191029/1959454.html