2012-07-14 61 views

回答

1

立即评估计算的观测值。当你在你的例子中使用对象字面值创建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()