我有一个表,显示发票,然后是一个嵌套表,显示为这些发票进行的单独检查。我正在使用敲除和打字稿来呈现这些表。我可以显示发票,但是checks表不显示数据。到目前为止的代码如下:

<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"
        );
    }


现在,服务器调用确实到达了服务器端代码,传递了正确的参数并返回了我要显示为发票一部分的支票清单。但是,表本身没有任何数据。

javascript -  knockout TypeScript表未呈现数据-LMLPHP

我的想法是,这与我将模型映射到视图模型的方式有关。这也可能是我自己设置表格,具有正确的剔除属性等的方式。我们将不胜感激。

编辑:将parent.bankDrafts更改为$ parent.bankDrafts()即可解决此问题。

最佳答案

您的代码中有错字。在foreach绑定中使用$parent.bankDrafts代替parent.bankDrafts

09-25 15:18