可计算的或可观察的
Computed or observable
我有一个应用程序,允许我们的客户来到我们的网站,获得报价,然后做回报分析,等等…
有两个部分…引用部分和回报部分
我正在使用knockout来同步字段....所以当客户进来说他们需要一个10 × 10的设备时,我们给他们报价4000美元。该值作为成本复制到"回收期"表中。然后我们扣除节能抵免、投资税收抵免等。提出"净投资"。
只要用户按照正确的方式执行每一步,一切都是可行的。
现在,如果用户已经对他们计划在我们的一个单位上花多少钱有了一个大致的估计,会发生什么?他们不知道他们需要一个10x10的单位,他们只知道他们有5000美元可以投资,想看看这个投资是否有好的回报。因此,这个示例用户跳过报价部分,只想输入他们假设的价格并获得一些数字。
我的视图模型是这样设置的:
self.height = ko.observable('<?php echo $height; ?>'),
self.width = ko.observable('<?php echo $width; ?>'),
/* Math simplified to remove gobbeldygook */
self.cost = ko.computed(function () {return (self.height() * self.width()) * 40;}),
我如何设置"成本",使其自动计算时提供的高度和宽度,但也是可编辑和可更改的UI?
非常感谢您的帮助
Knockout使可写计算观察对象更容易实现这一点。您可以提供一个read函数,在用户访问它时返回值,就像您已经做的那样,但也可以提供当值被写入时发生的逻辑。
根据您的设置,看起来您希望计算成本的写入部分为高度和宽度设置适当的值。
self.cost = ko.computed({
read: function () { return (this.height() * this.width()) * 40; },
write: function(value) { /* your logic here to set height and width */ },
owner: self
});
完整的文档在这里,大约30%的下降:
相关文章:
- 下拉列表未从计算的可观察项更新
- 在编辑记录上可观察的挖空 JS 计算
- 挖空映射:加载数据后,父模型中的计算可观察量不会更新
- Knockout.js:在可选定义的值上计算可观察性
- 如何使用ES6在Ember中声明可观察性或计算属性
- 击倒计算的可观察到的未发射'写'
- 向KO传递在对象内可观察到的计算值
- 如何使某些可观察的“独立”计算可观察(Knockout.js)
- 如何在运行时向计算可观察量添加其他数组项
- Knockout.js - 如何在计算的可观察量中获取可观察属性的值
- 在不重置对象的情况下重新计算计算可观察量
- 长度可计算总是假的
- 从计算的可观察量中获取价值
- Knockout的可写计算在AngularJS中可观察的模拟是什么?
- 如何在淘汰.js中实现可计算的可观察量
- 不能使用可计算的挖空 js
- 正则表达式:插入*使其可计算
- 可计算的或可观察的
- 读在击倒可计算不总是发射与扩展
- KnockoutJS:可写的可计算观察对象没有更新