编程语言
首页 > 编程语言> > javascript-使用Polymer中的内联JSON通过URI加载JSON

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