Mustache JS 和单数/复数
我使用 Mustache 来模板化我的 javascript ajax 调用,这是我的数据和模板:
{'joined':1} // ajax responde data json.
var myTemplate = '{{ joined }} person joined so far.'
它有效,但是我想修复其中的语法,如果超过 1 人加入,我想显示到目前为止有 5 人加入。
如何在不操作服务器端 ajax json 响应器的情况下实现这一目标?
I use mustache for templating my javascript ajax calls, Here is my data and the template:
{'joined':1} // ajax responde data json.
var myTemplate = '{{ joined }} person joined so far.'
It works, however I want to fix the grammer in this, if more than 1 person joins, I want to show 5 people joined so far
.
How to achieve this without manipulating the server side ajax json responder ?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
如果您可以诱导服务器端 AJAX 以这种方式传递它,则可以在 JavaScript 对象内添加条件逻辑:
http ://jsfiddle.net/mblase75/H8tqn/
You can add conditional logic inside the JavaScript object, if you can coax your server-side AJAX into delivering it that way:
http://jsfiddle.net/mblase75/H8tqn/
实际上,您可以仅使用 Mustache 来完成此操作,但对于这种情况,您的 JSON 不仅包含数字,还包含值数组以及数组的大小:
为此,您可以使用以下 Mustache 模板之一:
在简单的情况下,当您只需要为复数添加“s”时:
结果:
在一般情况下,当复数是特殊的(如 people/person)时:
结果:
您可以在此处找到在实践中应用的两个模板:
http://jsfiddle.net/H8tqn/9/
PS如果可以的话我会在这里再次发帖找到这个问题的解决方案:
Actually you can do it with only Mustache, but for the case your JSON contains not only a number, but an array of values, together with the size of the array:
In order to do it, you can use one of the following Mustache templates:
In the simple case, when you just need to add "s" for plural:
The result:
In the general case, when the plural is special (like people/person):
The result:
You can find both templates applied in practice here:
http://jsfiddle.net/H8tqn/9/
P.S. I will post again here if I can find the solution for this one: