yui datatable列点符号不显示
问题描述:
YUI DataTable不显示'dot.notation'键的值(尽管似乎有一个奇怪的技巧可行)。补救这个的最好方法是什么?我想要一个'正确的'答案,而不是当前的那个我扁平化嵌套对象并保留嵌套对象的位置(这两个对象都必须存在才能正常工作)。yui datatable列点符号不显示
示例数据(第三基准的作品,因为怪异的复制方法的)
var table = new Y.DataTable({
columns: ['key', 'dot.notation'],
data: [{
// broken
key: 'value',
'dot.notation': 5
}, {
// broken
key: 'value',
dot: {
notation: 5
}
}, {
// displays
key: 'value',
'dot.notation': 5,
dot: {
notation: 5
}
}]
});
答
使用DataSchema是正确的操作方法。我相信,用来工作,但虚线键版本,那么在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更喜欢子键值,但我希望它能工作 – barnyr
我实际上使用YUI所称的“自定义同步层”,我认为这可能会绕过某些插件的使用,例如DataSourceJSONSchema。但至少我可以设置一个断点并找出它在做什么。谢谢 –
没问题。请张贴您的解决方案。您是使用自己的同步层还是使用YUI提供的其中一个? – barnyr