1

このシナリオをノックアウト js でモデル化することは可能ですか?

3 つのフィールドがあるとします。

Current Income: この値を変更Retirement Incomeすると、更新する必要があります(Current Income * Percentage of Current Income) / 100

Retirement Income: この値を変更Percentage of Current Incomeすると、更新する必要があります(Retirement Income/Current Income) * 100

Percentage of Current Income: この値を変更Retirement Incomeすると、更新する必要があります(Current Income * Percentage Of Current Income) / 100

これはある種の循環依存ですか? ノックアウト js を使用してモデル化できますか? すべてのフィールドを計算する必要があると思います...しかし、デフォルト値を設定する方法や、まだ宣言されていない計算されたオブザーバブルを使用する方法がわかりません。

jsfiddle の開始点: http://jsfiddle.net/LkqTU/4482/

4

1 に答える 1

2

使用できますread/write computed

var ViewModel = function() {
    var self = this;

    self.currentIncome = ko.observable(1000);
    self.currentIncomePercent = ko.observable(5);

    self.retirementIncome = ko.computed({
        read: function() {
            var result = self.currentIncome() * self.currentIncomePercent() / 100;
            return result.toFixed(2);
        },
        write: function(value) {
            var result = value / self.currentIncome() * 100;
            self.currentIncomePercent(result.toFixed(2));
        }
    });
};

ko.applyBindings(new ViewModel());

ここにフィドルが働いています:http://jsfiddle.net/vyshniakov/LkqTU/4503/

于 2012-10-16T08:02:32.603 に答える