我正在使用RESTful API,它以大整数格式向我的ember应用程序提供数据。例如:
{
"users":[
{
"id":25969533824547743811785852951
},
...
]
}
但是,Handlebars会以某种科学记数法显示id
:
2.5969533824547745e + 28
因此link-to
路由被破坏,网址user/2.5969533824547745e+28/edit
无法解析。
如何在Ember中映射大整数 id
,以便ID不以简写或科学记数法表示?
答案 0 :(得分:3)
最简单的解决方案是发送一个字符串。无论如何,Ember-Data内部使用字符串作为ID,这是最简单的方法。 RestAdapter只使用从$ .Ajax https://github.com/emberjs/data/blob/master/packages/ember-data/lib/adapters/rest_adapter.js#L741传入的JSON对象 从理论上讲,我们可以实现一个自定义JSON解析器,它会在处理字符串之前首先将id转换为字符串,但这似乎有点过分和缓慢。如果您无法更改我将查看的方法的API。可能只是使用jquery中的returnText,查找/替换所有id作为字符串,然后是parseJSON。
node.js is there any proper way to parse JSON with large numbers? (long, bigint, int64)可能会有所帮助