我正在使用ssr渲染,在我的应用程序中使用window和它的值时遇到了一个问题,现在我可以使用下面的代码获得window的属性。
@Inject(PLATFORM_ID) private platformId: Object) {
if (isPlatformBrowser(this.platformId)) {
console.log(window.appConfig.apiBaseUrl)
// this.apiBaseUrl = window.appConfig.apiBaseUrl;
}
}
我的问题是如何访问 window.appConfig.apiBaseUrl。 在下面的代码中,这也是RestangularConfigFactory的配置。
export function RestangularConfigFactory(RestangularProvider) {
// TODO - change default config
RestangularProvider.setBaseUrl(window.appConfig.apiProxy);
RestangularProvider.addFullRequestInterceptor((element, operation, path, url, headers, params) => {
// Auto add token to header
headers.Authorization = 'Bearer ' + localStorage.getItem('accessToken');
headers.platform = window.appConfig.platform;
return {
headers: headers
};
});
RestangularProvider.addErrorInterceptor((response, subject, responseHandler) => {
// force logout and relogin
if (response.status === 401) {
localStorage.removeItem('accessToken');
localStorage.removeItem('isLoggedin');
window.location.href = '/auth/login';
return false; // error handled
}
return true; // error not handled
});
}
我认为你应该创建一个服务,并在服务中注入platformId。这对我来说是有效的。