2014-02-22 53 views
0

我是Angular的新手,我正在嘗試(用於培訓目的)編寫一個轉換器。在AngularJs中綁定雙向轉換器的兩個輸入

我試圖做的是像谷歌搜索頁面結果轉換器:https://www.google.com/search?q=1km+to+meter

Google converter

基本上,它是綁定在一起的變化做轉換的東西兩個輸入。當您更新meter輸入時,它會更新kilometer輸入,反之亦然。

現在,我使用了一個過濾器來完成轉換(因爲我發現它對於工作來說很酷)。你可以在這裏找到一個生動的例子:http://jsfiddle.net/FMXhJ/1/

正如你所看到的米到公里的工程很好,但我不明白我怎麼能做到相反的方式。所以它似乎不是解決問題的解決方案。

我希望你的幫助知道什麼是最好的解決方案。

一些$watch上的控制器爲兩個輸入是一個很好的方式去?

+0

這個真棒的現實關於尋找答案,當你發佈的問題剛剛再次發生.. 我認爲這是我的答案:http://stackoverflow.com/a/17626761/1410020 –

回答

4

你可以只使用兩種型號,並更新對方的ngChange事件:

http://jsfiddle.net/FMXhJ/2/

或者你的確可以使用觀察家:

http://jsfiddle.net/FMXhJ/3/

現在你最好的結構你的數據有一個通用的轉換方法和一個不同的單位數組,因此{name: 'km', ratio: '0.001'}所以將一個值轉換爲另一個值只是乘以公式操作比。

+0

謝謝!正如我在下面評論我的問題,我想我會使用觀察者選項。 –

+0

來到這裏找到了一些在C#WPF中已知的BindingConverter的解決方案。這有助於。 – LuckyLikey