在 Angular 2 中,为了本地化日期管道,您需要提供LOCALE_ID
. 我有一个服务LocaleService
,它公开了locale$: Observable<string>
哪些实现BehaviorSubject<string>
. 我不想给这个服务添加任何状态,我希望它是完全被动的。提供时如何从该服务中获取信息LOCALE_ID
?
问问题
2238 次
2 回答
1
如果您想为您的应用设置一次语言,使用 LOCALE_ID 的解决方案非常棒。但是,如果您想在运行时更改语言,它不起作用。在这里查看我的答案。
于 2017-08-15T07:44:07.810 回答
0
管道可以返回一个 Observable。
import { Pipe, PipeTransform } from '@angular/core';
import { LocaleService } from 'shared/locale.service';
import { Observable } from 'rxjs/Observable';
import { formatDate } from 'somelibrary';
import 'rxjs/add/operator/map';
@Pipe({
name: 'myDate',
pure: false
})
export class MyDatePipe implements PipeTransform {
constructor(private localeService: LocaleService) { }
transform(date: string): Observable<String> {
return this.localeService.locale$.map(locale => formatDate(date, locale));
}
}
于 2017-02-03T14:53:08.847 回答