Immistart Cur Table

by paulftw

HTML

<script src='//ajax.googleapis.com/ajax/libs/angularjs/1.2.3/angular.js'></script>

   <table ng-app ng-controller=immi_FoodTable>
   <tr><td>Валюта:</td></tr>
   <tr>
       <td><input type="radio" ng-model="curname" value="AUD" style="vertical-align: baseline;"/> Австралийский доллар
       </td>
       <td><input type="radio" ng-model="curname" value="RUB" style="vertical-align: baseline;"/> Российский рубль, курс: {{coef.RUB.rate}}
       </td>
       <td><input type="radio" ng-model="curname" value="UAH" style="vertical-align: baseline;"/> Украинская гривна, курс: {{coef.UAH.rate}}
       </td>
   </tr>
   </table>


<table>
    <tr>
        <td valign="bottom" nowrap="nowrap" width="90">Чтото</td>
        <td valign="bottom" nowrap="nowrap" width="77">&nbsp;$&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 2.78</td>
    </tr>
</table>

JavaScript

window.immi_FoodTable = function($scope) {
    $scope.coef = {
      AUD: {rate: 1, sym: 'A$'},
      RUB: {rate: 30.3, sym: 'руб'},
      UAH: {rate: 7.5, sym: 'грн'}
    };
    $scope.curname = 'AUD';
    window.immi_InitFoodTable();
    $scope.$watch('curname', function() {
      var co = $scope.coef[$scope.curname];
      window.immi_ChangeCurrency(co.sym, co.rate);
    });
  };
  window.immi_InitFoodTable = function() {
    jQuery('td').each(function(i, e) {
        e = jQuery(e);
        var re = /\s*\$\s*([0-9.]+)/;
        if (!re.test(e.text())) {
            return;
        }
        var m = e.text().match(re)[1];
        e.css('text-align', 'right')
        e.data('enchanted', 1);
        e.data('orig', e.text());
        e.data('aud', parseFloat(m));
    });
  };
  window.immi_ChangeCurrency = function(sym, rate) {
    jQuery('td').each(function(i, e) {
        e = jQuery(e);
        if (e.data('enchanted') != 1) {
            return;
        }
        e.text((rate*e.data('aud')).toFixed(2) + ' ' + sym);
    });
  };