0

誰でも助けてくれますか、これを進める方法を教えてください。

KnockoutJS を使用してサンプル アプリを作成しようとしています (MVC の両方を学習し、jQuery/Knockout を学習しようとしています)。

このサンプルは、Knockout トレーニング ドキュメントのカートの例に基づいています。私のコピー/バージョンは次のとおりです。

JsFiddle例

JSON はかなり単純です。

[{
    "occ": [
    {
        "name": "1 Room only",
        "price": 53.9},
    {
        "name": "1 B&B",
        "price": 62.16}, ],

    "TypeName": "Single",
    "TypeID": "3121",
    "TypeCount": "2"
    },
{
    "occ": [
    {
        "name": "2 B&B",
        "price": 24.23},
    {
        "name": "2 DBB",
        "price": 32.95}],

    "TypeName": "Double",
    "TypeID": "4056",
    "TypeCount": "2"
    }......

したがって、最初のドロップダウンは「TypeName」と「TypeID」にリンクされています。

そこから選択すると、Occ (2 番目のドロップダウン) にその部屋で利用可能なオファーが表示されます (例: 2 DBB @ 32.95)。

現在、希望する数量を入力できるテキスト ボックスがありますが、JSON で「TypeCount」までの数値に制限するか、別のドロップダウンを使用することをお勧めします。 、「TypeCount」までの数値があります。

可能であれば、[部屋を追加] をクリックして別の行を追加した場合に表示される内容も制限したいので、上記の行で既に選択されている部屋タイプを、次の行。

ご指摘ありがとうございます。

マーク

4

1 に答える 1

1

Knockout には、というユーティリティが含まれてko.utils.rangeおり、開始値と終了値を指定できます。これを使用して、1 からTypeCount.

書き方はいくつかありますが、一例を以下に示します。

<td class='quantity' data-bind="with: category">
    <select data-bind="visible: $parent.product, options: ko.utils.range(1, TypeCount), value: $parent.quantity"></select>
</td>

更新されたフィドル: http://jsfiddle.net/rniemeyer/3t6hP/4/

于 2012-08-22T12:18:22.253 に答える