Как передать язык в сервисный вызов get, используя angular4 - PullRequest
1 голос
/ 23 октября 2019

Необходимо найти языковой стандарт и передать его в вызов службы (get):

Свойство 'indexOf' не существует для типа '() => 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';
    }

1 Ответ

1 голос
/ 23 октября 2019

Скорее всего, вы пытаетесь использовать получатель правильно?

Для того, чтобы сделать это, вам нужно отделить 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 ​​без скобок () - это не что иное, как определение вашей функции, а не массив вообще.

...