繁体   English   中英

YUI DataTable使用KnockoutJS绑定

[英]YUI DataTable using KnockoutJS bindings

我有一个在JSFiddle工作的示例

它有一个YUI数据表消耗的JSON,我需要使用KnockoutJS绑定来创建它。 我对KnockoutJS相当陌生,想知道如何做到这一点。

该表应在标记下创建-

<div class="yui3-skin-sam" id="datatable"></div>​

代码如下:

YUI().use('datatable', 'datasource-local', 'datasource-jsonschema',function(Y){
var data  = {"generations": [{
    "type": "Modern",
    "showName": "The Modern Generation",
    "imgURI": "file:/D:/projectGen.png",
    "relations": {
        "father": {
            "age": "49",
            "firstName": "George",
            "lastName": "Mathews",
            "priority": "1",
            "profession": "Service"
        },
        "mother": {
            "age": "47",
            "firstName": "Susan",
            "lastName": "Aldrin",
            "priority": "2",
            "profession": "Home-Maker"
        },
        "brother": {
            "age": "28",
            "firstName": "Martin",
            "lastName": "Mathews J",
            "priority": "3",
            "profession": "Engineer"
        },
        "sister": {
            "age": "23",
            "firstName": "Laura",
            "lastName": "Mathews J",
            "priority": "4",
            "profession": "Fashion Model"
        },
        "aunt": {
            "age": "50",
            "firstName": "Sally",
            "lastName": "Bekkers",
            "priority": "5",
            "profession": "Singer"                
        }
    }
 }]
};
var localDataSource = new Y.DataSource.Local({source:data});
var dynamicColumns = Y.Object.keys(data.generations[0].relations);
var config = {
    schema: {
        resultListLocator: 'generations',
        resultFields: [{key:'showName'}]
    }
};

Y.Array.each(dynamicColumns,function(key){
    config.schema.resultFields.push({
        key: key,
        locator: "relations."+key + ".firstName" 
    });
});

var jsonSchema = localDataSource.plug(Y.Plugin.DataSourceJSONSchema, config);
console.log(config.schema.resultFields); 
var table = new Y.DataTable({
    columns: config.schema.resultFields
});

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

table.render('#datatable');
table.datasource.load();

});

可以使用KnockoutJS出价吗? 我知道可以使用KnockoutJS绑定很好地创建HTML表,但是我发现YUI部分比较棘手。 请帮忙。

我假设您需要向表单元格添加一些数据绑定属性。 YUI表允许您通过使用模板来自定义TD元素的创建。 请查看YUI文档以获取有关此信息的更多信息

自定义绑定有助于解决此问题。 我可以将数据表创建代码放在自定义绑定中,以便它将在调用绑定的标记上创建表。 凉。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM