私はデュランダルを初めて使用し、数時間遊んでいます。それは非常に有望に思えます - しかし今私は問題に遭遇しました、私は理解できません - そしてGoogleで解決策を見つけることができません.
creditCardLines、cashLines、および DrivingReimbursementLines の 3 つのデータ テーブルを含むビューがあります。これらは 3 つの異なるデータ ソースからデータをフェッチし、ユーザーは新しい行を cashLines と DrivingReimbursementLines (フォームを省略) に追加できます。
問題: ビューモデルでは、データのリストを最初の foreach に簡単にバインドできますが、データを 2 番目と 3 番目にバインドする方法がわかりません。
activate 関数では、サーバー API への ajax 呼び出しを行って、最初の foreach のデータを取得し、これが終了すると promise を返します。ここで 2 番目と 3 番目の 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>