Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/369.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 敲除类型脚本表不呈现数据_Javascript_Typescript_Knockout.js - Fatal编程技术网

Javascript 敲除类型脚本表不呈现数据

Javascript 敲除类型脚本表不呈现数据,javascript,typescript,knockout.js,Javascript,Typescript,Knockout.js,我有一个表,显示发票,然后是一个嵌套表,显示对这些发票进行的单独检查。我正在使用knockout和typescript来呈现这些表。我可以让发票显示,但是支票表不显示数据。以下是迄今为止的代码: <tbody class="nohighlight" data-bind="foreach: parent.bankDrafts"> <tr> <td&g

我有一个表,显示发票,然后是一个嵌套表,显示对这些发票进行的单独检查。我正在使用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));
 }
}
namespace CheckRunApproval{
声明searchlet参数:string;
类SearchCheckRunModel{
public searchParameter=ko.observable(searchParameter | | null);
公共checkRuns=ko.observearray(空);
公共银行汇票=ko.observearray();
}
var模型=新的SearchCheckRunModel();
导出函数GetBankDrafts(数据: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"
        );
    }
publicstaticgetbankdrafts(checkrunID:number):JQueryPromise{
返回CommonMethods.doAjax(
“/Corp/Checks/CheckRunApprovalWS.asmx/getBankDrafts”,
stringify({checkrunID}),
“获取银行汇票”
);
}
现在服务器调用确实到达了服务器端代码,传入了正确的参数并返回了我试图显示为发票一部分的支票列表。但是,表本身没有任何数据

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


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

您的代码中有一个输入错误。在foreach绑定中使用
$parent.bankDrafts
而不是
parent.bankDrafts

你不是说
$parent
而不是
foreach:parent.bankDrafts
中的
parent
而不是
parent.bankDrafts
?你总是可以通过这样的技巧来调试视图中的虚拟机:将parent.bankDrafts添加到$parent.bankDrafts(),它起作用了。谢谢大家。我已经添加了它作为一个答案,你可以接受它作为解决