我有一个应用程序,可以让我们的客户能够来到我们的网站,获得报价,然后再做投资回报分析等..knockout.js - 计算机或可观察
有两个部分...的“报价”部分和“回报”部分。
我正在使用淘汰赛来同步字段....所以当客户进来说他们需要一个10 x 10单位,我们引用他们$ 4,000。该值作为“成本”复制到“投资回报”表中。然后,我们扣除节能积分,投资税收抵免等......以提出“净投资”。
只要用户按照正确的方式遵循每一步,一切都能正常工作。
现在,如果用户已经在他们计划在我们的某个单位上花费了一笔钱,会发生什么?他们不知道他们需要一个10x10的单位,他们只知道他们有5,000美元的投资,并希望看看这项投资是否有良好的回报。所以,这个示例用户跳过了报价部分,只是想输入他们的假定价格并获得一些数字。
我的视图模型设置这样的:
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编辑和多变?
非常感谢您的帮助。
格拉西亚斯!我曾看过这样的文字:写:在文档中,但它没有凝胶。它也似乎我必须改变在“读”部分中使用的可计算为这个工作。 “返回”似乎不能从“写入”工作。 final code: 'self.cost = ko.computed({read:function(){return(this.height()* this.width())* 40;},write:function(value){w =(值/ 40)/ this.height(); this.width(w);},owner:self}),' –
@Jason - 实际上。 'write'不返回任何内容。这只是执行一些逻辑。另外,它看起来并不像你正在设定任何高度 - 这是打算? –
报价总是高度与宽度的乘积。高度实际上是通过字体大小×行数来计算的......所以宽度更加流畅。从一个方面来看,客户在10英寸高的地方放4条线以获得48英寸高的边缘。然后他们告诉我们它应该是4英尺宽,我们给他们一个价格。当他们改变价格时,我们仍然有4条10英寸高的线,所以唯一有意义的改变是宽度,我还会弹出一条警告,告知用户有关看不见的改变。 –