1
我有一個表格,它顯示發票,然後是一個嵌套表格,顯示爲這些發票進行的各項檢查。我正在使用敲除和打字稿來呈現這些表格。我能夠獲得顯示的發票,但檢查表不顯示數據。這裏是到目前爲止的代碼: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));
}
}
而這裏的服務電話:
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'而不是'parent'? –
您可以隨時通過這樣的技巧調試視圖中的虛擬機: –
通過添加更改父代.bankDrafts到$ parent.bankDrafts()它工作。感謝大家。 – Crumblenautjs