2016-11-20 6 views
1

私は、請求書を表示するテーブルと、その請求書について行われた個々のチェックを示すネストされたテーブルを持っています。私はこれらのテーブルをレンダリングするためにknockoutとtypescriptを使用しています。私はインボイスを表示することができますが、チェックテーブルはデータを表示しません。ここでKnockout Typeテーブルがレンダリングされていないデータ

<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> 

typescriptですです:ここでこれまでのコードです

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

このようなトリックで、ビュー内のVMをいつでもデバッグできます。

+0

親を変更する.bankDraftsを$ parent.bankDrafts()に渡しました。みんな、ありがとう。 – Crumblenautjs

答えて

1

コードに入力ミスがあります。 foreachバインディングでparent.bankDraftsの代わりに$parent.bankDraftsを使用してください。

関連する問題