可自動計算屬性(Value轉換器)

//Value轉換器
//有時候你可能需要顯示一些不同格式的數據,從基礎的數據轉化成顯示格式。
//eg 你存儲價格為float類型,但是允許用戶編輯的字段需要支持貨幣單位和小數點。你可以用可寫的自動屬性來實現,然后解析傳入的數據到基本
//float類型里:

<pre>

function MyViewModel()
{
this.price = ko.observable(25,99);

this.formattedPrice = ko.computed({ 
   
   read:function(){ 
    
   return '$'+this.price().toFixed(2);
    
    
},
  write:function(value){

      
      value = parseFloat(value,replace(/[^\.\d]/g,""));
      
      this.price(isNaN(value)? 0:value); 
      
  },
  
  owner: this 
});

}

ko.applyBinding(new MyViewModel());

</pre>
<pre>
<code>
<p>Enter bid price: <input data-bind="value: formattedPrice"/></p>

<code>

</pre>

//所以,不管用戶什么時候輸入新價格,輸入什么格式,text box里會自動更新為帶有2位小數點和貨幣符號的數值。

//這樣用戶可以看到你的程序有多聰明,來告訴用戶只能輸入2位小數,否則的話自動刪除多余的位數,當然也不能輸入負數,

//因為 write 的callback函數會自動刪除負號。

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容