javascript - knockout TypeScript 表不渲染数据

标签 javascript typescript knockout.js

我有一个显示发票的表格,然后是一个显示对这些发票进行的单独检查的嵌套表格。我正在使用 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>

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

我的想法是,这与我将模型映射到 View 模型的方式有关。这也可能是我设置表格本身的方式,具有正确的 knockout 属性等。任何帮助将不胜感激。

编辑:将parent.bankDrafts更改为$parent.bankDrafts()它解决了问题。

最佳答案

您的代码中有一个拼写错误。在 foreach 绑定(bind)中使用 $parent.bankDrafts 而不是 parent.bankDrafts

关于javascript - knockout TypeScript 表不渲染数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40702109/

相关文章:

mvvm - knockout JS - ViewModel 抽象

javascript - 如何使用洛达什

javascript - 如何防止 foreach 复制 HTML 表数组中的条目

jquery - TypeScript 与 Jquery

javascript - 将 observable<object> 转换为 observable<task[]>

Typescript:类实现接口(interface)问题?

javascript - 在 KnockoutJS 中, with 绑定(bind)正在清除我的 DOM

javascript - 具有命名模板的 Knockout 3.2 组件?

javascript - *ngFor 循环与异步管道?

javascript - 在bundle.js中多次调用reactDom.render