ruby-on-rails - 如何在 RoR + AngularJS 应用程序中格式化货币输入
问题描述
对不起我的英语不好。
我需要更改输入值格式,例如:从“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 知之甚少,我尝试了一些方法,但所有这些方法都是不正确的。:(
任何人都可以提供一些帮助的建议吗?先感谢您
解决方案
您将需要创建一个新指令,该指令需要 ngModel 并对其应用适当的 $parser/$formatter。
https://docs.angularjs.org/api/ng/type/ngModel.NgModelController# $parsers
如何做到这一点的一个很好的例子是(显示为大写,但始终将数据存储为小写):
然后,您应该能够添加在“选项”参数中包含其他指令的功能,以便将它们正确添加到输出中。
推荐阅读
- javascript - rxjs中mergeMap和concatMap的混合
- node.js - [npm]npm install 安装到第 53455 个文件时会卡住
- python - 检查 .callproc python 中的存储过程是否成功执行
- javascript - 我的光标移动到我的 contenteditable 的第一个单词
当我替换值时
- c# - 当我请求 google people api 时没有最后修改的时间戳
- c - 为什么我在加密字符串的程序中出现分段错误(核心转储)?
- javascript - 如果值粘贴在 type="number" 的输入字段中,则显示错误消息
- arrays - char* 指针数组修改
- rest - REST API 设计:什么是独特的操作或资源
- flutter - 颤动中 SliverAppBar 和 ListView 之间的奇怪空间