0

persistedObject を X クラスに送信できるため、構築中に syncer プロパティを防止したい。

    function X(persistanceObject) {
        var self = this;

        self.xid = -1;
        self.syncer = ko.computed(function () {
            // if  object construction in progress then return 

            // persist properties....
        }, self);
        self.y = ko.observable(43);

        if (typeof persistanceObject !== 'undefined') {
            ko.mapping.fromJS(persistanceObject, {}, self.y);
        }
    }
4

1 に答える 1

2

オプションを使用して、計算されたオブザーバブルがすぐに評価されないようにすることができdeferEvalautionます。

次のようになります。

self.syncer = ko.computed(function () {
            // if  object construction in progress then return 

            // persist properties....
}, self, { deferEvaluation: true });

現在は、その値がアクセスされるまで評価されません。UI でこれをバインドしていない場合は、self.syncer()すべてのプロパティの準備が整った後、少なくとも 1 回 ( ) 呼び出す必要があります。

于 2012-07-25T13:19:21.790 に答える