yui数据表列点符号不显示任何内容

yui数据表列点符号不显示任何内容,yui,yui-datatable,yui-datasource,Yui,Yui Datatable,Yui Datasource,YUIDataTable不显示“dot.notation”键的值(尽管似乎有一个奇怪的技巧可以工作)。最好的补救办法是什么?我想要一个“正确”的答案,而不是我当前的答案,在这里我展平嵌套对象并保留嵌套对象(两者都必须存在,才能使其当前起作用) 示例数据(第三个数据由于奇怪的复制技巧而起作用) 使用是正确的处理方法。我相信虚线键版本曾经可以工作,但后来版本3.5中的更改停止了这种工作 YUI().use('datatable', 'datasource','datasource-jsonschem

YUIDataTable不显示“dot.notation”键的值(尽管似乎有一个奇怪的技巧可以工作)。最好的补救办法是什么?我想要一个“正确”的答案,而不是我当前的答案,在这里我展平嵌套对象并保留嵌套对象(两者都必须存在,才能使其当前起作用)

示例数据(第三个数据由于奇怪的复制技巧而起作用)

使用是正确的处理方法。我相信虚线键版本曾经可以工作,但后来版本3.5中的更改停止了这种工作

YUI().use('datatable', 'datasource','datasource-jsonschema', function (Y) {

    var ds = new Y.DataSource.Local({
        source: [{
            // broken
            key: 'value',
            'dot.notation': 5
        }, {
            // broken
            key: 'value',
            dot: {
                notation: 5
            }
        }, {
            // displays
            key: 'value',
            'dot.notation': 5,
            dot: {
                notation: 5
            }
        }]
    });

    ds.plug({fn: Y.Plugin.DataSourceJSONSchema, cfg: {
    schema: {
        resultFields: [
            "key",
            {
                key:'foo',
                locator:'dot.notation'
            }
        ]
    }
}});

    var table = new Y.DataTable({
        columns: ['key', 'foo'],
        caption: 'Better Now'
    });
    table.plug(Y.Plugin.DataTableDataSource, {
        datasource: ds
    });
    table.render('#lolol');
    table.datasource.load();

});

我刚刚注意到,上面的代码适用于数据中的所有三个对象,包括第一个对象,它使用“dot.notation”形式,这是我没有预料到的。看起来DataSchema更喜欢子键值,这就是我希望它能工作的方式。我实际上使用的是YUI称之为“自定义同步层”,我认为这可能会避免使用某些类型的插件,如DataSourceJSONSchema。但至少有了它,我可以设置一个断点并弄清楚它在做什么。谢谢你没有问题。发布你的解决方案。您是使用自己的同步层还是YUI提供的同步层?我自己的类似于。更复杂的是,我根据响应动态添加和删除了列。我还没有费心去钻兔子洞,首先将我的自定义同步转换为YUI数据源,然后还要看看是否有可能动态更新插入其中的数据源JSONSchema。
YUI().use('datatable', 'datasource','datasource-jsonschema', function (Y) {

    var ds = new Y.DataSource.Local({
        source: [{
            // broken
            key: 'value',
            'dot.notation': 5
        }, {
            // broken
            key: 'value',
            dot: {
                notation: 5
            }
        }, {
            // displays
            key: 'value',
            'dot.notation': 5,
            dot: {
                notation: 5
            }
        }]
    });

    ds.plug({fn: Y.Plugin.DataSourceJSONSchema, cfg: {
    schema: {
        resultFields: [
            "key",
            {
                key:'foo',
                locator:'dot.notation'
            }
        ]
    }
}});

    var table = new Y.DataTable({
        columns: ['key', 'foo'],
        caption: 'Better Now'
    });
    table.plug(Y.Plugin.DataTableDataSource, {
        datasource: ds
    });
    table.render('#lolol');
    table.datasource.load();

});