2015-07-04 77 views
1

我做了一个AngularJS指令,它需要一个模型并将模型的值(在本例中为“25mm”)转换为其他值视图(在本例中,转换为英寸)。从AngularJS格式器指令中监听父模型的变化

这里是一个工作plnkr演示:http://plnkr.co/edit/fO1S9GcubHE57Pf7Kt9G?p=preview

演示,但是,并没有达到预期效果。将下拉列表的值从“英寸”更改为“英尺”后,我认为该视图将以适当的值重新呈现。不是这种情况。

我已经注意到,这是因为我不更改“听”,这就是为什么我把

scope.$watch("[convertFrom, convertTo]", function(n) { 

}); 

这留意的变化方面工作正常,但如果我取消注释$watch,格式化程序停止工作。

我的第二个问题是,我正在推动功能到阵列$formatters$parsers。确切地说,每次下拉值变化时都有一个函数。

我的问题是:

  • 我怎样才能观看的变化,使格式化的工作?
  • 如何在每次更改下拉列表时在$formatter$parser阵列中插入新功能。

回答

0

我设法自己做。这里是一个plunkr演示:http://plnkr.co/edit/jgF2QIP4QeA0Glcnn35B?p=preview

事实证明,我需要把我的$parser$formatter功能只有一次,并注意从外部的变化,则触发“重新解析”或“重新格式化”:

scope.$watch("[convertFrom, convertTo]", function(n) { 
    ngModel.$modelValue = ''; 
});