javascript - 在 AngularJs 中为转换器绑定(bind)双向两个输入

标签 javascript angularjs

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

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

Google converter

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

目前,我使用过滤器来进行转换(因为我发现它对于这项工作来说很酷)。您可以在这里找到一个实例:http://jsfiddle.net/FMXhJ/1/

如您所见,米到公里的效果很好,但我不知道如何才能以相反的方式进行。所以看来这不是解决问题的办法。

我希望您能帮助我了解最好的解决方案。

Controller 上的一些 $watch 用于两个输入是一个好方法吗?

最佳答案

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

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

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

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

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

关于javascript - 在 AngularJs 中为转换器绑定(bind)双向两个输入,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21961539/

相关文章:

javascript - 通过ID删除并获取Angular.js和Servlet

javascript - 无法检查从 json 编码的 php 数组准备的 javascript json 中的对象值

javascript - RNG 游戏正在制作中,需要帮助确定命中类型

javascript - 如何清理剩余的 watch

javascript - 永远不要同时显示两个 div

javascript - Angular 应用程序无法在浏览器上正确呈现

php - 如何将 php 函数放入 javascript onclick 函数中?

javascript - 通过主干将数据发布到 RESTful

javascript - 如何根据url和数据库数据加载不同的文本框?

javascript - 如何在 Angular js中获取寻呼机点击事件?