js.erb文件中返回的格式化编号
Formatting number returned in js.erb file
我需要在我拥有的js.erb文件中格式化投票系统中返回的数字。当页面最初通过rails加载时,我可以为正数加上"+"号(也可以为负数加上"-"号),但在javascript上,我不确定如何添加。这是我的_like.js.erb:
$('.like')
.on('ajax:send', function () { $(this).addClass('loading'); })
.on('ajax:complete', function () { $(this).removeClass('loading'); })
.on('ajax:error', function () { $(this).after('<div class="error">There was an issue.</div>'); })
.on('ajax:success', function (e, data, status, xhr) { $("#comment_<%= comment.id %>").html('<%=escape_javascript comment.cached_votes_score.to_s %>').hide().fadeIn(500); });
$('.unlike')
.on('ajax:send', function () { $(this).addClass('loading'); })
.on('ajax:complete', function () { $(this).removeClass('loading'); })
.on('ajax:error', function () { $(this).after('<div class="error">There was an issue.</div>'); })
.on('ajax:success', function (e, data, status, xhr) { $("#comment_<%= comment.id %>").html('<%=escape_javascript comment.cached_votes_score.to_s %>').hide().fadeIn(500); });
这是我的html.erb部分:
<%= link_to unlike_post_post_comment_path(post, comment), class: "unlike", method: :put, remote: true do %>
<button type="button" class="btn btn-xs btn-danger" aria-label="Left Align">
<span><i class="fa fa-thumbs-o-down"></i></span>
</button>
<% end %>
<%= link_to like_post_post_comment_path(post, comment), class: "like", method: :put, remote: true do %>
<button type="button" class="btn btn-xs btn-info" aria-label="Left Align">
<span><i class="fa fa-thumbs-o-up"></i></span>
</button>
<% end %>
<% if comment.cached_votes_score > 0 %>
<span class="badge like vote-score" id="comment_<%= comment.id %>"><%= "+ #{comment.cached_votes_score}" %></span>
<% elsif comment.cached_votes_score < 0 %>
<span class="badge like vote-score" id="comment_<%= comment.id %>"><%= "- #{comment.cached_votes_score.abs}" %></span>
<% else %>
<span class="badge like vote-score" id="comment_<%= comment.id %>"><%= comment.cached_votes_score %></span>
<% end %>
好的,我知道你需要什么了。将ajax:success
回调中的代码更改为以下内容:
$("#comment_<%= comment.id %>").html("<%= comment.cached_votes_score > 0 ? "+ #{comment.cached_votes_score.to_s}" : (comment.cached_votes_score < 0 ? "- #{comment.cached_votes_score.to_S}" : comment.cached_votes_score.to_s) %>");
看起来不漂亮,你可能需要稍微调整一下引号(改为/),但这符合你的要求。
编辑:
另一种方法是使用sprintf。不确定你是否特别想在+和数字之间留一个空格,但试试这个:
$("#comment_<%= comment.id %>").html("<%= sprintf("%+d", comment.cached_votes_score) %>");
相关文章:
- jQuery中是否内置了任何字符串格式化函数
- 将字符串转换为格式化日期
- Highcharts-如何在自定义格式化程序中获得默认的y轴标签格式化程序
- 用Javascript重新格式化复杂文本日期字符串的更好方法
- 在HTML画布上格式化文本
- 用于高级文本的格式化工具
- 在jquery中生成一个自动前缀编号
- 使用模式格式化Number类型输入中的值
- 将格式化的纯文本转换为HTML
- Jquery 读取编号组中选择下拉列表的数组
- 如何配置WebStorm以正确格式化生成器函数
- JQuery幻灯片,可点击编号位置
- 如何将日期字符串视为格式化数组[EYEAR,MONTH,DAY]
- 如何在谷歌可视化中组合数字和模式格式化程序
- jsx-React组件中的格式化编号
- 使用 jquery 编号格式化程序格式化数字并重新格式化它们
- js.erb文件中返回的格式化编号
- 使用JavaScript或ExtJS四舍五入格式化的字符串编号
- 格式化特定模式的数组编号
- 页面加载时使用逗号格式化类型编号