Jquery 淘汰JS清单,使用自定义绑定绑定历史详细信息

Jquery 淘汰JS清单,使用自定义绑定绑定历史详细信息,jquery,knockout.js,knockout-2.0,knockout-mapping-plugin,Jquery,Knockout.js,Knockout 2.0,Knockout Mapping Plugin,我有一份数据清单 用户将单击任意行并显示其详细信息 将保存以前的用户选择,并继续触发自定义绑定以调用ajax检索数据 var jsondata = [{ "xxd": "1", "r_xd": "1", "fxd": 1, "dtxd": 1, "drxd": 1, "dsxd": 1, "x_ther": "1", "x_t

我有一份数据清单 用户将单击任意行并显示其详细信息

将保存以前的用户选择,并继续触发自定义绑定以调用ajax检索数据

  var jsondata = [{
       "xxd": "1",
           "r_xd": "1",
           "fxd": 1,
           "dtxd": 1,
           "drxd": 1,
           "dsxd": 1,
           "x_ther": "1",
           "x_therslutxn": "1",
           "x_xsnd": true,
           "x_xsfxxed": true,
           "x_lat": "1",
           "x_ln": "1",
           "x_delete": false,
           "x_deldate": "2013-12-02T00:00:00",
           "s_c_by": 1
   }, {
       "xxd": "2",
           "r_xd": "2",
           "fxd": 2,
           "dtxd": 2,
           "drxd": 2,
           "dsxd": 1,
           "x_ther": "3",
           "x_therslutxn": "4",
           "x_xsnd": true,
           "x_xsfxxed": true,
           "x_lat": "1",
           "x_ln": "1",
           "x_delete": false,
           "x_deldate": "2013-12-02T00:00:00",
           "s_c_by": 321
   }];

   //-----------------get historical data
   //jQuery.support.cors = true;
   ko.bindingHandlers.history = {
       init: function (element, valueAccessor) {
           console.log('-------init history---------');
           //console.dir(element);
           var primaryId = valueAccessor();
           //console.log(primaryId);

           var itemData = null;
           // JSON RETURN DATA  

           $.post("/echo/json/", {
               json: JSON.stringify(jsondata)
           },

           function (data, textStatus, jqXHR) {
               console.log('getJSON');
               console.dir(data);
               new HistoryRowViewModel(data);
           });
       }
   };


   function HistoryRowViewModel(data) {
       //this.history = ko.observable(); 
       ko.mapping.fromJS(data, historymapping, vm.historys);
   }
   var historymapping = {
       key: function (data) {
           console.log(data);
           return ko.utils.unwrapObservable(data);
       },
       create: function (options) {
           console.log(options.data);
           return HistoryRowViewModel(options.data);
       }
   }
我的viewmodel按如下方式返回我:{“historys”:[null,null]}


这是mybinding的错误吗?历史记录:vm.primaryid()

valueAccessor()返回我传递给它并能够查询它的primaryid

我的意图是推动从jsondata返回的每一行

把它和我的观点联系起来

我如何做到这一点? 我的概念错了吗


我已经把它发到()了,但不起作用。。我不知道如何将它与其他依赖项绑定起来。

你的问题很难理解。除了许多拼写问题,缺少Interfunction(如果需要,可以使用自动拼写检查),缺少,您的实际问题并不清楚。你的具体问题是什么?试着把它归结为一个特定的问题,如果需要,写下后续问题。此外,如果您的示例/提琴只有一个问题(您正试图解决的问题),那么这会有所帮助,因为目前有太多的问题无法解决(例如,请参阅控制台了解JS错误)。祝你好运另外,pre标记直接在表标记内做什么?只是好奇!那个布局是错误的@杰罗恩。。抱歉,我将在没有其他依赖项的情况下对其进行优化。@SujeshArukil pre是我的调试代码。我没有删除它,因为这就是我目前显示输出的方式。
     <table id="historical" data-bind="history:vm.primaryid()">      
    <pre data-bind="text: JSON.stringify(ko.toJS(vm), null, 2)"></pre>       
      <thead>    
        <tr data-bind="foreach: $parent">           
          <!--  <pre data-bind="text: JSON.stringify(ko.toJS($data)), null, 2)"></pre> -->   
          <th data-bind="text:$data">
          </th>          
        </tr>      
      </thead>                      
      <tbody>              
        <!-- ko foreach: vm.historys() -->       
        <tr data-bind="foreach: vm.historys()">                   
          <!-- ko foreach: $parent -->       
          <!--<pre data-bind="text: JSON.stringify(ko.toJS($data), null, 2)"></pre>    -->       
          <td data-bind="text:$data.incidentid"> </td>                                
          <!-- /ko -->                          
        </tr>                             
        <!-- /ko -->                        
      </tbody>                  
    </table>