3

カウント変数を使用して、一度に 25 項目のノックアウト可観測配列をロードしようとしています。ボタンをクリックすると、リストにさらに 25 個の項目が表示されるという考え方です。シンプルに聞こえますが、ノックアウトでは役に立ちません。

$root.getCount と $parent.getCount を呼び出して、リストビューの div に値として getCount を入れてみましたが、どれも機能しません。考え過ぎかもしれません。私がやりたいのは、名前付き変数を $getCount がある if ステートメントに入れることだけです。ヘルプは素晴らしいでしょう。

<div class="list-view" >
    <ul data-bind="foreach: myBigList" class="shop_list">
        <!-- ko if: $index() < $getCount -->
            <li class="list_row">

            </li>
        <!-- /ko -->
    </ul>
</div>

ここに私のビューモデルがあります

 $(function () {
    var viewModel = {
        count: ko.observable(25),
        getCount: function () {
            return count;
        },
        updateCount: function () {
            count+=count;
        },
    };
    ko.applyBindings(viewModel);
})
4

2 に答える 2

2

あなたが実際に達成しようとしていることを理解しているかどうかはわかりませんが、25 個のグループで表示したいアイテムの大きなリストが既にあると仮定します。目に見えるバインディングを使用してそれを達成できます。

<div class="list-view" >
    <ul data-bind="foreach: myBigList" class="shop_list">
        <li class="list_row" data-bind="visible: $index() < $parent.count()">

        </li>
    </ul>
</div>

count はオブザーバブルであるため、その値を更新するには、次のようにする必要があります。

$(function () {
    function ViewModel() {
        this.count = ko.observable(25);
        this.updateCount = function () {
            var newCount = this.count() + 25;
            this.count(newCount);
        };
    }
    ko.applyBindings(new ViewModel());
})
于 2013-06-11T16:49:12.683 に答える
0

はオブザーバブルであるためcount、関数構文を使用してそれを返す必要があります: return count();. メソッドが呼び出されるたびに count 変数に 25 を追加する場合updateCountは、値をハードコーディングする必要があります。

$(function () {
    var viewModel = {
        count: ko.observable(25),
        getCount: function () {
            return count();
        },
        updateCount: function () {
            count()+=25;
        },
    };
    ko.applyBindings(viewModel);
})
于 2013-06-11T20:02:33.867 に答える