2014-02-22 22 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