1

我试图通过一些困难的淘汰赛来实现以下目标:

  1. 绑定一个选择表单元素......这有效
  2. 通过 ko.observable 显示选定的选项...这有效
  3. 在 ko.computed 变量中使用 #2 中的 ko.observable...我想不通。

到目前为止,这是我尝试的小提琴。有任何想法吗?

4

1 回答 1

1

计算出的 observables 会立即被评估。当您viewModel在示例中的对象文字中创建变量时,它还不能在您的计算 observable 中使用。

几个选择。像这样写:

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 回答