【问题标题】:Update the entire row after changing 1 column + Knockout.js更改 1 列 + Knockout.js 后更新整行
【发布时间】:2013-02-18 16:10:09
【问题描述】:

我有一个可观察的数组,其中包含一个值列表,每个值都有一个由 :
100 * valueQuantity / valuetotal 计算的百分比。

valueQuantity = input value
valueTotal = value0 + value1 + value2

如果用户更改了一个值,valuetotal 需要更改,并且必须对所选行中的值(value0、value1 和 value2)执行重新计算。

我正在使用扩展器来计算百分比。

示例:JS fiddle sample

更改表中的值后,我需要更新这些值。

【问题讨论】:

    标签: jquery knockout.js knockout-2.0 knockout-mvc


    【解决方案1】:

    计算中需要更改的每个值都必须是模型中的 ko.observable。 例如:

    { name: "CEP 7", value0: ko.observable(50), percent0: 0, value1: ko.observable(50), percent1: 0, value2: ko.observable(20), percent2: 0 },
    

    应该计算哪个值,应该是 ko.computed 值,而不是 observable。例如:

    percent0: ko.computed(function() {
        return this.value0() / (parseFloat(this.value0()) + parseFloat(this.value1()) + parseFloat(this.value2()));
    }),
    

    那么您的活页夹应该“正常工作”。您在标记中使用声明 ko.observables 似乎不寻常。

    【讨论】:

    • 来吧 :-) 先试一试,如果需要我会纠正的。
    • 我做了,但是在设置 ko.observable(50) 时,它将输入设置为 NaN
    • 干得好。我还建议您将 ko.observable 声明移出 data-bind 属性,就像您拥有它一样,我编辑了我的示例来解释。
    猜你喜欢
    • 2017-04-16
    • 2016-10-19
    • 2022-01-05
    • 1970-01-01
    • 2012-10-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-01-07
    相关资源
    最近更新 更多