Как отформатировать ввод валюты в приложении RoR + AngularJS - PullRequest
0 голосов
/ 09 апреля 2019

Извините за мой английский.

Мне нужно изменить формат входного значения, например: с "1000000" на "1 000 000 $".

В моем представлении приложения rails,У меня есть эта строка кода:

<%= ng_text_field('total_price', 'selected.data.total_price', 'Full price', ng_readonly: '!selected.permissions.update') %>

В помощнике:

  def ng_text_field(name, ng_model, placeholder, options = {})
    result = <<-HTML
      <div class="form-group" ng-class='{"has-error":errors.#{name}}' #{options[:ng_if] && "ng-if=\"#{options[:ng_if]}\""}>
        <label for="#{name}" class="col-sm-3 control-label">#{placeholder}</label>
        <div class="col-sm-9">
          <input id="#{name}" 
                 type="text" 
                 class="form-control" 
                 name="#{name}" 
                 placeholder="#{placeholder}" 
                 ng-model="#{ng_model}"
                 #{options[:ng_readonly] && "ng-readonly=\"#{options[:ng_readonly]}\""}>
          <p class="help-block small" ng-if="errors.#{name}">{{errors.#{name} | join:',' }}</p>
        </div>
      </div>
    HTML
    result.html_safe
  end

Я знаю Angular очень мало, я пробовал некоторые способы, и все эти способы были неверными.: (

Может кто-нибудь дать совет какой-нибудь помощи? Заранее спасибо

1 Ответ

0 голосов
/ 16 апреля 2019

Вам нужно будет создать новую директиву, которая требует ngModel и применяет к ней соответствующий $ parser / $ formatter.

https://docs.angularjs.org/api/ng/type/ngModel.NgModelController#$parsers

Хороший пример того, как это сделать (отображение в верхнем регистре, но всегда сохранение данных в нижнем регистре):

ngМодели форматирования и анализаторы

После этого вы сможете добавить возможность включать другие директивы в аргумент 'options', чтобы они правильно добавлялись в вывод.

...