我有一个表,显示发票,然后是一个嵌套表,显示为这些发票进行的单独检查。我正在使用敲除和打字稿来呈现这些表。我可以显示发票,但是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"
);
}
现在,服务器调用确实到达了服务器端代码,传递了正确的参数并返回了我要显示为发票一部分的支票清单。但是,表本身没有任何数据。
我的想法是,这与我将模型映射到视图模型的方式有关。这也可能是我自己设置表格,具有正确的剔除属性等的方式。我们将不胜感激。
编辑:将parent.bankDrafts更改为$ parent.bankDrafts()即可解决此问题。
最佳答案
您的代码中有错字。在foreach绑定中使用$parent.bankDrafts
代替parent.bankDrafts
。