我是 Durandal 的新手,现在已经玩了几个小时了。这似乎很有希望 - 但现在我遇到了一个问题,我无法弄清楚 - 并且无法通过 Google 找到解决方案。
我有一个包含三个数据表的视图——creditCardLines、cashLines 和drivingReimbursementLines。他们从三个不同的数据源获取数据——用户可以向 cashLines 和drivingReimbursementLines 添加新行(省略表格)。
问题:在视图模型中,我可以轻松地将数据列表绑定到第一个 foreach - 但我不知道如何将数据绑定到第二个和第三个。
在激活函数中,我对我的服务器 API 进行 ajax 调用以获取第一个 foreach 的数据 - 然后在完成时返回承诺。如何在这里获取第二个和第三个 foreach 的数据?
视图模型:
define(function () {
var submit = function () {
this.displayName = 'Expenses';
this.creditCardLines = ko.observableArray();
var me = this;
this.activate = function () {
return $.get('/submit/GetCreditCardLines').then(function (creditCardLines) {
me.creditCardLines(creditCardLines.Data);
});
};
};
return submit;
});
看法:
<section>
<h2 data-bind="html:displayName"></h2>
<h3>CreditCard lines</h3>
<table class="table">
<tbody data-bind="foreach: creditCardLines">
<tr>
<td class="date" data-bind="text: Date"></td>
<td data-bind="text: Description"></td>
<td data-bind="text: Amount"></td>
<td><input type="checkbox" data-bind="checked: ApprovedEmployee" /></td>
</tr>
</tbody>
</table>
<h3>Cash lines</h3>
<table class="table">
<tbody data-bind="foreach: cashLines">
<tr>
<td class="date" data-bind="text: Date"></td>
<td data-bind="text: Description"></td>
<td data-bind="text: Amount"></td>
</tr>
</tbody>
</table>
<!-- TODO: Generate form to add new lines -->
<h3>Driving reimbursement lines</h3>
<table class="table">
<tbody data-bind="foreach: drivingReimbursementLines">
<tr>
<td class="date" data-bind="text: Date"></td>
<td data-bind="text: Description"></td>
<td data-bind="text: Distance"></td>
<td data-bind="text: Rate"></td>
<td data-bind="text: Amount"></td>
</tr>
</tbody>
</table>
<!-- TODO: Generate form to add new lines -->
<!-- Approve and save all lines as a quote with lines -->
<input type="submit" value="Submit quote" />
</section>