2016-11-20 65 views
1

我有一個表格,它顯示發票,然後是一個嵌套表格,顯示爲這些發票進行的各項檢查。我正在使用敲除和打字稿來呈現這些表格。我能夠獲得顯示的發票,但檢查表不顯示數據。這裏是到目前爲止的代碼:Knockout TypeScript表格不呈現數據

<tbody class="nohighlight" data-bind="foreach: parent.bankDrafts"> 
          <tr> 
           <td><span data-bind="text: CheckID"></span></td> 
           <td><span data-bind="text: CheckRunID"></span></td> 
           <td><span data-bind="text: VendorName"></span></td> 
           <td><span data-bind="text: CheckDate"></span></td> 
           <td><span data-bind="text: FormatCurrency(CheckAmount)"></span></td> 
           <td><span data-bind="text: Globalize.formatCheckRunApproveStatus(ApprovalStatusID)"></span></td> 
          </tr> 
         </tbody> 

這裏的打字稿:

namespace CheckRunApproval { 
declare let searchParameter: string; 

class SearchCheckRunModel { 
    public searchParameter = ko.observable<string>(searchParameter || null); 
    public checkRuns = ko.observableArray<CheckRunModel>(null); 
    public bankDrafts = ko.observableArray<BankDraftInfoModel>(); 
} 
var model = new SearchCheckRunModel(); 

export function GetBankDrafts(data: CheckRunModel): void { 
    CheckRunServiceMethods.GetBankDrafts(data.CheckRunID()) 
     .done(bankDrafts => ko.mapping.fromJS(bankDrafts, null, model.bankDrafts)); 
} 
} 

而這裏的服務電話:

public static GetBankDrafts(checkrunID: number): JQueryPromise<BankDraftInfo[]> { 
     return CommonMethods.doAjax<BankDraftInfo[]>(
      "/Corp/Checks/CheckRunApprovalWS.asmx/getBankDrafts", 
      JSON.stringify({ checkrunID }), 
      "GetBankDrafts" 
     ); 
    } 

現在服務器調用確實到達服務器端代碼,傳遞正確的參數並返回我試圖顯示爲發票一部分的支票列表。但是,表本身沒有任何數據。

Printchecks

我的想法是,它是與我爲模型映射到視圖模型的方式。這也可能是我設置表本身的方式,具有正確的淘汰賽屬性等。任何幫助將不勝感激。

編輯:將parent.bankDrafts更改爲$ parent.bankDrafts()它修復了問題。

+1

你是不是指'foreach:parent.bankDrafts'中的'$ parent'而不是'parent'? –

+2

您可以隨時通過這樣的技巧調試視圖中的虛擬機:

+0

通過添加更改父代.bankDrafts到$ parent.bankDrafts()它工作。感謝大家。 – Crumblenautjs

回答

1

您的代碼中存在拼寫錯誤。在foreach綁定中使用$parent.bankDrafts而不是parent.bankDrafts