【问题标题】:knockout.js using a ko.observable via a selected value in a ko.computed statementknockout.js 通过 ko.computed 语句中的选定值使用 ko.observable
【发布时间】:2012-07-14 04:47:51
【问题描述】:

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

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

这是我迄今为止尝试的Fiddle。有什么想法吗?

【问题讨论】:

    标签: knockout.js


    【解决方案1】:

    计算后的 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()

    【讨论】:

      猜你喜欢
      • 2017-07-18
      • 2013-04-16
      • 1970-01-01
      • 2018-06-01
      • 2016-08-21
      • 2023-04-10
      • 1970-01-01
      • 2020-07-30
      • 2016-02-27
      相关资源
      最近更新 更多