我有一個應用程序,可以讓我們的客戶能夠來到我們的網站,獲得報價,然後再做投資回報分析等..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英寸高的線,所以唯一有意義的改變是寬度,我還會彈出一條警告,告知用戶有關看不見的改變。 –