1

我是 YUI 的新手,找不到解决此问题的方法。我正在使用 YUI 示例中的代码并尝试使其适用于我的 json url。

<div id="pizza" class="yui3-skin-sam dt-example"></div>
<script>
YUI().use("datasource-get", "datasource-jsonschema", "datatable-base-deprecated", "datatable-datasource-deprecated", function (Y) {

var url = "http://api.geonames.org/citiesJSON?north=44.1&south=-9.9&east=-22.4&west=55.2&lang=de&username=demo",
dataSource,
table;

dataSource = new Y.DataSource.Get({ source: url });

dataSource.plug(Y.Plugin.DataSourceJSONSchema, {
schema: {
    resultListLocator: "geonames",
    resultFields: ["fcodeName", "toponymName", "countrycode", "fcl", "fclName", "name", "wikipedia", "lng", "fcode", "geonameId", "lat", "population"]
}
});

table = new Y.DataTable.Base({
columnset: ["fcodeName", "toponymName", "countrycode", "fcl", "fclName", "name", "wikipedia", "lng", "fcode", "geonameId", "lat", "population"]    });

table.plug(Y.Plugin.DataTableDataSource, { datasource: dataSource });

table.render("#pizza");

table.datasource.load({ request: url });
});
</script>

我的json响应是

{"geonames":[{"fcodeName":"capital of a political entity","toponymName":"Mexico City","countrycode":"MX","fcl":"P","fclName":"city, village,...","name":"Mexiko-Stadt","wikipedia":"","lng":-99.12766456604,"fcode":"PPLC","geonameId":3530597,"lat":19.428472427036,"population":12294193}, same pattern....]}

我想我缺少一些基本概念。如果这个问题没有意义,我很抱歉。

4

1 回答 1

3

这是您需要的 Javascript 代码。您可以使用此小提琴对其进行测试:http: //jsfiddle.net/tppiotrowski/pfHAm/

YUI().use("datasource-get", "datasource-jsonschema", "datatable-base-deprecated", "datatable-datasource-deprecated", function (Y) {

var url = "http://api.geonames.org/citiesJSON?",
    query = "north=44.1&south=-9.9&east=-22.4&west=55.2&lang=de&username=test1",
    dataSource,
    table;

dataSource = new Y.DataSource.Get({ source: url });

dataSource.plug(Y.Plugin.DataSourceJSONSchema, {
    schema: {
        resultListLocator: "geonames",
        resultFields: ["fcodeName", "toponymName", "countrycode", "fcl", "fclName", "name", "wikipedia", "lng", "fcode", "geonameId", "lat", "population"]
    }
});

table = new Y.DataTable.Base({
    columnset: ["fcodeName", "toponymName", "countrycode", "fcl", "fclName", "name", "wikipedia", "lng", "fcode", "geonameId", "lat", "population"]    
});

table.plug(Y.Plugin.DataTableDataSource, { datasource: dataSource });

table.render("#pizza");

table.datasource.load({ request: query });
});​
于 2012-11-20T11:43:21.230 回答