为AngularJs中的转换器绑定双向输入

时间:2014-02-22 22:35:06

标签: javascript angularjs

我是Angular的新手,我正在尝试(出于培训目的)编写转换器。

我要做的是像Google搜索页面上的转换结果:https://www.google.com/search?q=1km+to+meter

Google converter

基本上,它是两个输入绑定在一起并在变化时进行转换。当您更新meter输入时,它会更新kilometer输入,反之亦然。

目前,我已经使用了一个过滤器来进行转换(因为我觉得这个工作很酷)。您可以在此处找到实时示例:http://jsfiddle.net/FMXhJ/1/

你可以看到米到公里工作得很好,但我看不出我怎么能这样做。所以它似乎不是解决问题的解决方案。

我希望你的帮助能够知道做到这一点的最佳解决方案。

控制器上的两个输入的$watch是一个很好的方法吗?

1 个答案:

答案 0 :(得分:4)

您可以使用两个模型并在ngChange事件中相互更新:

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

或者您确实可以使用观察者:

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

现在,您可以通过使用通用转换方法和不同单位数组{name: 'km', ratio: '0.001'}来更好地构建数据,因此将值转换为另一个只是乘以适当的比率。