2013-07-12 56 views
0

我有一个名为simpleSearchResultsArray其中包含数据observableArray,并且阵列gridOptions包含表头名称。对于相同的代码是:http://jsfiddle.net/FENuV/8/不能结合观察到的阵列 - 敲除

视图代码:

<table id="resultTableBody"> 

    <thead id="resultTableHeader"> 
     <tr style="text-align: center" data-bind="foreach: columns"> 
      <th style="text-align: center" data-bind="visible: checked, text: header"> 
      </th> 
     </tr> 
    </thead> 

    <tbody data-bind="foreach: simpleSearchResultsArray"> 
     <tr data-bind="foreach: $parent.gridOptions.columns"> 
      <td data-bind="text: $parent[dataMember], visible:checked"> 
      </td> 
     </tr> 
    </tbody> 

</table> 

查看型号代码:

function QuoteSimpleSearchVM() { 
    var self = this; 

     self.gridOptions = { 
     columns: [{ 
      header: 'Index', 
      dataMember: 'index', 
      checked: ko.observable(true) 
     }, { 
      header: 'Job Name', 
      dataMember: 'jobName', 
      checked: ko.observable(true) 
     }, { 
      header: 'Quote Name', 
      dataMember: 'quoteName', 
      checked: ko.observable(true) 
     }, { 
      header: 'Quote Number', 
      dataMember: 'quoteNumber', 
      checked: ko.observable(true) 
     }, { 
      header: 'Bid date', 
      dataMember: 'bidDate', 
      checked: ko.observable(true) 
     }, { 
      header: 'Last modified', 
      dataMember: 'lastModified', 
      checked: ko.observable(true) 
     }, { 
      header: 'Document Type', 
      dataMember: 'docType', 
      checked: ko.observable(true) 
     }, { 
      header: 'Status', 
      dataMember: 'status', 
      checked: ko.observable(true) 
     }, { 
      header: 'View', 
      dataMember: 'view', 
      checked: ko.observable(true) 
     } 
     ] 
    }; 

    self.simpleSearchResultsArray={ 
     Result:[{ 
     bidDate: "07/11/2013", 
     docType: "QUOTE", 
     index: 1, 
     jobName: "MobileTestingReportGenerationJob", 
     lastModified: "07/11/2013", 
     quoteName: "MobileFunctionalQuote", 
     quoteNumber: "ftcc06000_06241300_01_00_O00", 
     status: "Pending Quote Approval" 
     }, { 
     bidDate: "08/28/2012", 
     docType: "QUOTE", 
     index: 2, 
     jobName: "_Aug28th_GLOBAL_CHANGE", 
     lastModified: "07/11/2013", 
     quoteName: "32259_Purify", 
     quoteNumber: "ftfs04000_08281200_07_00_O00", 
     status: "Draft" 
     } 
    ]}; 
} 

$(document).ready(function() { 
    var tempVM= new QuoteSimpleSearchVM(); 
    ko.applyBindings(tempVM.gridOptions, document.getElementById("resultTableHeader")); 
    ko.applyBindings(tempVM.simpleSearchResultsArray, document.getElementById("resultTableBody")); 
}); 

我正在绑定错误。任何人都可以帮我解决这个问题吗?

在此先感谢。

回答

0

为什么你将tempVM.gridOptions绑定到节点?您必须改为绑定您的视图模型。只需将with加到<thead id="resultTableHeader" data-bind="with: gridOptions">

查找出在这里:http://jsfiddle.net/kreeg/FENuV/9/

+0

感谢您的答复。但我怎么能显示数据是simpleSearchResultsArray数组的一部分?你可以修改jsfiddle吗?这里是链接:http://jsfiddle.net/FENuV/11/ – user2439903

+0

你的'simpleSearchResultsArray'不是数组,它是对象。改为使用'simpleSearchResultsArray.Result'。在这里检查http://jsfiddle.net/kreeg/FENuV/12/ –

1

你不需要调用ko.applyBindings两次。在父节点上调用它,并在你的对象上绑定foreach。

<tr style="text-align: center" data-bind="foreach: gridOptions.columns"> 

<tbody data-bind="foreach: simpleSearchResultsArray.Result"> 

Look out here