当前位置: 首页 > 知识库问答 >
问题:

Ionic 2,在iOS上使用Angular 2管道中断—“找不到变量:Intl”

支劲
2023-03-14

{{ .0237| percent:'1.2-2' }}

它在Chrome上运行时有效,但当我部署到iOS设备时,它会抛出以下错误:

还有其他人遇到过这个问题吗?任何建议或帮助都将不胜感激!谢谢

共有3个答案

魏旭
2023-03-14

或者另一种解决方案是自己编写这些管道。例如,对于日期,您可以使用 moment.js,或者下面是货币管道的示例

import { Pipe, PipeTransform } from '@angular/core'

@Pipe({ name: 'currency' })

export class CurrencyPipe implements PipeTransform {
    constructor() {}

    transform(value: string, currencyString: string ) { 
        let stringOnlyDigits  = value.replace(/[^\d.-]/g, '');
        let convertedNumber = Number(stringOnlyDigits).toFixed(2);
        return convertedNumber + " " + currencyString;
    }
} 
卫嘉谊
2023-03-14

对此有一个快速的解决方法。增加

<script src="https://cdn.polyfill.io/v2/polyfill.min.js?features=Intl.~locale.en"></script>

到您的索引。之前的html文件

请参阅此github答案 https://github.com/angular/angular/issues/3333#issuecomment-203327903

施弘壮
2023-03-14

这是因为它依赖于内化API,而内化API目前并不是在所有的浏览器中都可用(例如不是在iOS浏览器上)。

请参见兼容性表。

这是一个已知问题(beta.1)。

您可以尝试对Intl使用polyfill。

为此,您可以使用CDN版本,并将其添加到index.html中:

<script src="https://cdn.polyfill.io/v2/polyfill.min.js?features=Intl.~locale.en"></script>

或者,如果您使用Webpack,您可以安装带有NPM的Intl模块:

npm install --save intl
import 'intl';
import 'intl/locale-data/jsonp/en';
 类似资料:
  • 即。在货币管道上完成一些额外的格式化。为此,我想在自定义管道的组件代码中使用现有管道。

  • 问题内容: 我尝试了各种方式,但似乎没有任何效果。这是我的詹金文件。 阶段脚本的输出(“初始化变量”)没有任何作用,它没有设置全局变量ZIP_NODE的值: 然后我们进入阶段(代码-Build),我们没有得到ZIP_NODE的值。请参阅22:34:17的echo声明 感谢@awefsome,我有一些观察,我想补充一下细节:当我使用下面的代码时,我得到了想要的输出,即ZIP_NODE的正确值: 但是

  • 问题内容: 我正在使用angular2和gulp开发一个节点应用程序。我编写了一个组件文件login.ts,如下所示: 我的bootstrap.ts文件是: 但是当我编译这些文件时,出现以下错误: 这是我的tsconfig.json: 我已经使用以下命令安装了angular2的类型: 请帮助纠正错误。 问题答案: @simon错误说的是输入错误。但是对于其他进口商品,我已经发布了此答案,可能对其他

  • 我正在构建一个jenkins管道,作业可以由远程触发。我需要知道哪个IP触发了作业。所以我有一个小Groovy脚本,它返回远程IP。使用EnvInject-plugin,我可以轻松地在正常的自由式作业中使用这个变量,但是我如何在管道中使用它?我不能将EnvInject-plugin与管道插件一起使用:( 这是获取IP的小脚本:

  • 有一个代码: 当我试图获取或时,它只显示。但是 我不明白,为什么会这样。