Ionic 2,在iOS上使用Angular 2 Pipe break-“無法找到變量:Intl”



Answers

有一個快速解決方案。 加

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

<script src="cordova.js"></script>條目之前的index.html文件。

看到這個github答案https://github.com/angular/angular/issues/3333#issuecomment-203327903

Question

在模板中使用日期,百分比和貨幣管道時遇到同樣的問題 -

例如,我使用的是簡單的百分比管道:

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

它在Chrome上運行時有效,但是當我部署到iOS設備時,它會拋出此錯誤:

“EXCEPTION:ReferenceError:無法找到變量:[{{{{{{{{{{{{{{{{{{{{{{} {

有沒有其他人遇到這個問題? 任何建議或幫助將不勝感激! 謝謝!




這是我用RC3做的。 我認為它也適用於RC4。

通過鍵入ionic g pipe pipe-transform創建管道

清理代碼以刪除@Injectable 。 另外,使用駝峰大小寫如下所示。 實現PipeTransform

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

/**
 * Takes a number and transforms into percentage upto
 * specified decimal places
 *
 * Usage:
 * value | percent-pipe: decimalPlaces
 *
 * Example:
 * 0.1335 | percent-pipe:2
*/
@Pipe({
  name: 'percentPipe'
})
export class PercentPipe implements PipeTransform {
  /**
   * Takes a number and returns percentage value
   * @param value: number
   * @param decimalPlaces: number
   */
  transform(value: number, decimalPlaces:number) {
    let val = (value * 100).toFixed(decimalPlaces);
    return val + '%';
  }
}

在你的app.module添加declarations數組。

然後在html中使用它就像上面的示例用法一樣。 這是我的例子

 <ion-col *ngIf="pd.wtChg < -0.05  || pd.wtChg > 0.05" width-25 highlight>
    {{pd.wtChg | percentPipe: 2}}
  </ion-col>

請注意,如果有人需要額外幫助,我也會使用* ngIf和高亮指令。 顯然沒有必要。






Links