1

私はノックアウトで次のことを達成しようとしていますが、いくつかの困難があります:

  1. 選択フォーム要素をバインドします...これは機能します
  2. ko.observable を介して選択したオプションを表示します ... これは機能します
  3. #2 の ko.observable を ko.computed 変数内で使用します...これがわかりません。

これまでの私の試みのフィドルです。何か案は?

4

1 に答える 1

1

計算されたオブザーバブルはすぐに評価されます。viewModel例のようにオブジェクトリテラルで変数を作成すると、計算されたオブザーバブルではまだ使用できません。

いくつかの選択肢。次のように書きます。

var viewModel = {
    optionValues: [10, 20, 30],
    selectedOptionValue: ko.observable()
};

viewModel.multipledValue = ko.computed(function(){
    return this.selectedOptionValue() * 3;
}, viewModel);

ko.applyBindings(viewModel);​

また

var ViewModel = function() {
   this.optionValues = [10, 20, 30];
   this.selectedOptionValue = ko.observable();
   this.multipledValue = ko.computed(function(){
        return this.selectedOptionValue() * 3;
   }, this);

};

ko.applyBindings(new ViewModel());

また、selectedOptionValueオブザーバブルであるため、次のように引数なしで関数として呼び出して値を読み取ります。 this.selectedOptionValue()

于 2012-07-14T05:05:12.877 に答える