如何使用angular4在获取服务调用中传递语言环境
How to pass locale in get service call using angular4
需要找到语言环境并将其传递给服务 (get) 调用:
Property 'indexOf' does not exist on type '() => string[]'
标题
角度4.
//Call Languages
getshortLanguages() {
return new Array('en', 'es', 'fr', 'it', 'pt', 'de', 'ru', 'tr', 'ko', 'ja', 'zh-cn', 'zh-hk');
}
getLocale() {
const locale = this.dbservice.getSessionContext().locale.toLowerCase();
var Languages = this.getshortLanguages;
if (!locale) return 'en';
var languageCode = locale.split('-')[0].toLowerCase();
if (this.getshortLanguages.indexof(languageCode)>-1 ) {
return languageCode;
}
else return 'en';
}
您很可能正在尝试使用 getter 对吧?
为此,您需要像这样将 get 与名称分开:
//Call Languages
get shortLanguages() {
return new Array('en', 'es', 'fr', 'it', 'pt', 'de', 'ru', 'tr', 'ko', 'ja', 'zh-cn', 'zh-hk');
}
getLocale() {
const locale = this.dbservice.getSessionContext().locale.toLowerCase();
var Languages = this.getshortLanguages;
if (!locale) return 'en';
var languageCode = locale.split('-')[0].toLowerCase();
if (this.shortLanguages.indexof(languageCode)>-1 ) {
return languageCode;
}
else return 'en';
}
否则,你应该得到伊戈尔提到的方式。在您的情况下,没有括号 () 的 getShortLanguages 只不过是函数的定义,根本不是数组。
需要找到语言环境并将其传递给服务 (get) 调用:
Property 'indexOf' does not exist on type '() => string[]'
标题
角度4.
//Call Languages
getshortLanguages() {
return new Array('en', 'es', 'fr', 'it', 'pt', 'de', 'ru', 'tr', 'ko', 'ja', 'zh-cn', 'zh-hk');
}
getLocale() {
const locale = this.dbservice.getSessionContext().locale.toLowerCase();
var Languages = this.getshortLanguages;
if (!locale) return 'en';
var languageCode = locale.split('-')[0].toLowerCase();
if (this.getshortLanguages.indexof(languageCode)>-1 ) {
return languageCode;
}
else return 'en';
}
您很可能正在尝试使用 getter 对吧?
为此,您需要像这样将 get 与名称分开:
//Call Languages
get shortLanguages() {
return new Array('en', 'es', 'fr', 'it', 'pt', 'de', 'ru', 'tr', 'ko', 'ja', 'zh-cn', 'zh-hk');
}
getLocale() {
const locale = this.dbservice.getSessionContext().locale.toLowerCase();
var Languages = this.getshortLanguages;
if (!locale) return 'en';
var languageCode = locale.split('-')[0].toLowerCase();
if (this.shortLanguages.indexof(languageCode)>-1 ) {
return languageCode;
}
else return 'en';
}
否则,你应该得到伊戈尔提到的方式。在您的情况下,没有括号 () 的 getShortLanguages 只不过是函数的定义,根本不是数组。