1

私はデュランダルを初めて使用し、数時間遊んでいます。それは非常に有望に思えます - しかし今私は問題に遭遇しました、私は理解できません - そして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>
4

2 に答える 2