0

私のタイトルが意味をなさない場合は申し訳ありませんが、これは私がこれまでに得たものです:

function createPostsArray(last) {
                var postArr = 
                    generate(
                        function () { 
                            return { 
                                postGroup: [], 
                                visible: computed(
                                            function (){ //return true if 
                                                         //postGroup is empty
                            } 
                        }, last)
                    .toArray();

                posts(postArr);

            }

基本的に、postGroup []は空なので、CSSを使用して「ロード」画面を表示したいと思います。postGroupがいくつかの要素を取得すると、自動的に表示されるのはfalseになるはずです。

後で、この計算された関数を拡張して、別のobservableも検討しますが、visibleは、関連付けられている特定のpostGroupに依存しているため、これは注意が必要です。

これどうやってするの?誰か知っている?

PS:Generateはlinq.js生成関数であり、Computedはko.computed関数です

PS:これらの概念を読むための良い参考資料は何ですか?

4

1 に答える 1

0

ノックアウト部分はこんな感じ。配列自体を監視する必要があるため、postGroup は observableArray である必要があります。visible は ko.computed であるため、postGroup の要素数が変化するたびにその関数が実行されます。

extend({ throttle: 100 }) は必要ありませんが、postGroup.push() 呼び出しを繰り返して postGroup を設定すると、パフォーマンスが向上します。指定された期間、依存関係が変化しなくなるまで、計算されたオブザーバブルの再評価を遅らせます。http://knockoutjs.com/documentation/throttle-extender.html

return { 
    postGroup: ko.observableArray(), 
    visible: ko.computed(function() {
        return postGroup().length > 0;
    }).extend({ throttle: 100 })
} 
于 2012-09-20T00:31:39.420 に答える