1

我的app.component样子是这样的:

export class AppComponent {

    public constructor(public translate: TranslateService) {

        const userLang = navigator.language.split('-')[0];
        const acceptedUserLang = /(de|en)/gi.test(userLang) ? userLang : 'en';
        this.translate.setDefaultLang('en');
        this.translate.use(acceptedUserLang);
    }
}

app.routing的定义如下:

const appRoutes: Routes = [
    {path: 'signUpSuccess/:language', component: SignUpSuccessComponent},
];

我的signUpSuccess.component

export class SignUpSuccessComponent {

    public constructor(translate: TranslateService, route: ActivatedRoute) {
        translate.use(route.snapshot.params['language']);
    }
}

当我加载页面时/signUpSuccess/deapp.component将语言设置为enng2-translate开始en.json从服务器获取,然后signUpSuccess.component将语言设置为deng2-translate开始de.json从服务器获取。如果由于任何原因现在de.json赢得比赛并首先到达客户端,那么语言将切换到到达客户端en时。en.json我怎样才能避免这种情况?

4

1 回答 1

0

请参阅此演示 plunker:https ://plnkr.co/edit/dfhdAI1o6VhVHFcnKmWH?p=preview

你可以使用这个功能

switchMap()

使用此功能,如果之前的请求仍处于挂起状态,则将取消它们。

于 2016-08-31T08:16:02.507 回答