【发布时间】:2012-07-14 04:47:51
【问题描述】:
我正在尝试通过一些困难的淘汰赛来实现以下目标:
- 绑定一个选择表单元素...这可行
- 通过 ko.observable 显示选定的选项...这可行
- 在 ko.computed 变量中使用 #2 中的 ko.observable...我想不通。
这是我迄今为止尝试的Fiddle。有什么想法吗?
【问题讨论】:
标签: knockout.js
我正在尝试通过一些困难的淘汰赛来实现以下目标:
这是我迄今为止尝试的Fiddle。有什么想法吗?
【问题讨论】:
标签: knockout.js
计算后的 observable 会立即被评估。当您在示例中的对象文字中创建 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 是一个 observable,因此您可以通过将其作为不带参数的函数调用来读取其值,例如:this.selectedOptionValue()
【讨论】: