缩短的ID:如何使用Ember数据配置大整数ID

时间:2014-08-12 04:51:16

标签: ember.js ember-data handlebars.js

我正在使用RESTful API,它以大整数格式向我的ember应用程序提供数据。例如:

{
    "users":[
        {
            "id":25969533824547743811785852951
        },
        ...
    ]
}

但是,Handlebars会以某种科学记数法显示id

  

2.5969533824547745e + 28

因此link-to路由被破坏,网址user/2.5969533824547745e+28/edit无法解析。

如何在Ember中映射大整数 id,以便ID不以简写或科学记数法表示?

1 个答案:

答案 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)可能会有所帮助