2017-08-08 7 views

答えて

2
を見つけるには

 <div *ngif="Location() === 'Europe' " 
    {{valueDate | date: 'dd/MM/yyyy'}} 
    <div> 
    <div *ngif="Location() === 'Ammerica' " 
    {{valueDate | date: 'MM/dd/yyyy'}} 
    <div> 

これは特にaotを使用すると難しい場合があります。通常は、異なるビルドを作成する必要があります。私はデータパイプを拡張し、ブラウザロケールを使用しました。

Datepipe:

@Pipe({name: 'datepipe', pure: true}) 
export class MyDatePipe extends DatePipe implements PipeTransform { 
    constructor(private win: WindowRef) { 
    super(win.ln); 
    } 

    transform(value: any, pattern?: string): string | null { 
    return super.transform(value, pattern); 
    } 
} 

ウィンドウ:

function _window(): any { 
    // return the global native browser window object 
    return window; 
} 

@Injectable() 
export class WindowRef { 
    get nativeWindow(): any { 
    return _window(); 
    } 

    public ln = 'en'; 


    constructor() { 
    try { 
     if (!isNullOrUndefined(this.nativeWindow.navigator.language) && this.nativeWindow.navigator.language !== '') { 
     this.ln = this.nativeWindow.navigator.language; 
     } 
    }finally {} 
    } 
} 
+0

ごめんなさい、申し訳ありませんが、ウィンドウではどういう意味ですか?それはちょうどwindow.tsファイルですか?これをAngularプロジェクトにどのように実装すればよいですか? –

+1

それは簡単なサービスです –

+0

ああ、今、感謝を見る!素晴らしい答え –

1

あなたは場所を確認し、文 はい、あなたはこのようにパイプを使用することができる場合にそれを置くことができます:場所に

getCurrentLocation(lat,lng): Observable<any> { 
return this._http.get("http://maps.googleapis.com/maps/api/geocode/json?latlng="+lat+","+lng+"&sensor=true") 
    .map(response => response.json()) 
    .catch(error => { 
    console.log(error); 
    return Observable.throw(error.json()); 
    }); 

}

+0

あなたは私が場所を確認する方法を説明していただけますか?あなたはそれをするためにユーザーからの許可が必要ですか? –

+1

私は上記のコードを編集し、コードを見て、私はそれが有用であることを願っています – ZAhmed

+0

答えをありがとう、私はこれも実際に動作すると思います。しかし、Robin Dijkhofの答えは、ブラウザーの設定で言語を探しているので少し良くなっていると思います。それにもかかわらず、これは動作しますので、ありがとう! –

関連する問題