小编Ada*_*ost的帖子

Angular Universal 7不进行http调用

我最近开始将Angular 7.2.0应用程序转换为Angular通用应用程序。该应用程序已成功渲染了服务器端,并在快速的PC和Internet连接上相当快速地传输了状态,但不幸的是,直到交出该页面后,渲染的页面仍缺少通常从API提取的任何数据。

我已将serverURL标记从服务器添加到提供的令牌中,并且在呈现服务器端时,所有http请求均使用完全限定的url进行。但是,这似乎无关紧要,因为所有http调用都在完成之前被取消!我的服务器未显示对api端点的调用,并且客户端记录了错误{}[Error]默认情况下显示为)。

我正在使用TransferStateModuleTransferHttpCacheModule,但是到目前为止,仍然没有任何效果。似乎快速引擎渲染将不会等待异步http调用。它会影响ngOnInit组件的http调用constructor,服务的s以及任何in resolver,因此我不知道如何获取数据。

对于诸如配置数据之类的事情,我将必要的字段作为令牌注入,并在服务器端渲染中检查该令牌,但是我无法对应用程序中的所有数据执行此操作。

以下是我的服务器和应用程序模块的相关部分

app.ts(节点快速服务器)

 app.get('*.*', express.static(APP_CONFIG.client_root, {maxAge: 0}));

    // Render Angular Universal
    if (APP_CONFIG.universal) {
        // Our index.html we'll use as our template
        const templateFile = HelpersService.tryLoad(join(APP_CONFIG.client_root, './index.html'));
            const config = configService.getConfig();
            const template = templateFile.toString();
            const win = domino.createWindow(template);
            const fakeanimation = {
                value: () => {
                    return {
                        enumerable: true,
                        configurable: true
                    };
                },
            };
            global['window'] = win; …
Run Code Online (Sandbox Code Playgroud)

express server-side-rendering angular-universal angular angular7

5
推荐指数
1
解决办法
1163
查看次数

十进制到分数

我正在研究一个需要接受和显示复杂分数的系统.接受分数并将它们转换为double作品的代码,但是当我想显示该值时,我需要转换回小数表示.

编辑:我已经修复了溢出问题,但是没有解决像1/3或5/6这样的分数.所以我设计了一种非常黑客的方法来做到这一点.我有代码生成1-> 64的每个分数0-> 64的十进制表示,并保存最简化的形式.这样,我可以遍历列表并找到最接近的分数,并简单地显示它.我有一些后会发布代码.

我现在的代码适用于绝大多数数字,但偶尔我会得到一小部分数字1/321.这会转换为double,但不能转换回来,因为在我的方法中,分子会导致整数溢出.

这是我的代码,我想知道是否有更好的方法,或者是否有一些方法可以安全地将这些转换为long而不会失去正确结果所需的精度:

public static String DecimalToFraction(double dec)
    {
        string str = dec.ToString();
        if (str.Contains('.'))
        {
            String[] parts = str.Split('.');
            long whole = long.Parse(parts[0]);
            long numerator = long.Parse(parts[1]);
            long denominator = (long)Math.Pow(10, parts[1].Length);
            long divisor = GCD(numerator, denominator);
            long num = numerator / divisor;
            long den = denominator / divisor;

            String fraction = num + "/" + den;
            if (whole > 0)
            {
                return whole + " " + fraction;
            }
            else
            { …
Run Code Online (Sandbox Code Playgroud)

c# math integer-overflow

2
推荐指数
1
解决办法
4815
查看次数