2012-08-30 67 views
0

我想模仿使用KnockoutJS數據綁定創建YUI3數據表。 比方說,我有以下的JSON字符串 -如何爲使用JSON數據的YUI DataTable創建KnockoutJS模板?

{ 「@lang」: 「EN-US」,

"cartItem": { 
    "@lang": "en-US", 
    "cartId": "14", 
    "items": [ 
     { 
      "@lang": "en-US", 
      "id": "5", 
      "name": "global/network/main", 
      "propertyURL": "mail.yahoo.com", 
      "rootPropertyName": "All Other", 
      "spaceId": "2023407535" 
     }, 
     { 
      "@lang": "en-US", 
      "id": "5", 
      "name": "global/network/main", 
      "propertyURL": "mail.yahoo.com", 
      "rootPropertyName": "All Other", 
      "spaceId": "2023407535" 
     } 
    ] 
}, 
"status": { 
    "@lang": "en-US", 
    "message": "", 
    "status": "success" 
} 

}

而且我用下面的代碼來創建YUI數據表消耗上述JSON - 。

YUI()的使用( 「數據表」, 「數據表-數據源」, 「數據源本地」, 「數據源-jsonschema」,函數(Y){

var jsonString = Y.one("#jsondata").getHTML(); 

    var dtsource = new Y.DataSource.Local({source:jsonString}); 
    dtsource.plug(Y.Plugin.DataSourceJSONSchema, { 
     4schema: { 
      resultListLocator: "cartItem.items", 
      resultFields: [ 
      // Re-map the "id" member to "rid" ...  
       { key:"rid", locator:"id"}, 
       "name", "propertyURL", "rootPropertyName" 
      ] 
     } 
    }); 

    var colums = ["rid", "name", "propertyURL", "rootPropertyName"]; 

    var dtable = new Y.DataTable({ 
     columns: colums, 
     summary:"Shopping cart items", 
     caption:"Table with JSON data from api"}); 

    dtable.plug(Y.Plugin.DataTableDataSource,{ 
     datasource:dtsource 
    }); 

    dtable.render("#jsonapi-datatable"); 
    dtable.datasource.load({request:"&id=14"});   
}); 

如何爲上面的代碼創建一個KnockoutJS模板?

在菲德爾 - http://jsfiddle.net/pPY7K/6/

回答

0

使用KnockoutJS自定義綁定,然後使用該綁定創建模板。