【问题标题】:How to format currency input in RoR + AngularJS app如何在 RoR + AngularJS 应用程序中格式化货币输入
【发布时间】:2019-04-09 16:51:54
【问题描述】:

对不起我的英语。

我需要更改输入值格式,例如:从“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 知之甚少,我尝试了一些方法,但所有这些方法都不正确。 :(

任何人都可以提供一些帮助的建议吗? 提前谢谢你

【问题讨论】:

    标签: ruby-on-rails angularjs ruby angularjs-directive rails-api


    【解决方案1】:

    您将需要创建一个需要 ngModel 的新指令,并对其应用适当的 $parser/$formatter。

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

    如何做到这一点的一个很好的例子是(显示为大写,但始终以小写存储数据):

    ngModel Formatters and Parsers

    您应该能够添加在您的“选项”参数中包含其他指令的功能,以便将它们正确添加到输出中。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-10-29
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多