Как выбрать страну по умолчанию с помощью ngx-intl-tel-input - PullRequest
0 голосов
/ 08 мая 2019

Я использую ngx-intl-tel-input для того, чтобы иметь поле международного телефонного номера в моем проекте Angular 7.

Я хотел бы иметь возможность установитьстрана по умолчанию для раскрывающегося списка (и, следовательно, сопровождающий заполнитель) либо:

  • с использованием кода страны, предоставленного пользователем в другой области формы, либо

  • , если не указано иное, с использованием кода страны IP-адреса пользователя

На основании документации для этого пакета я не вижу способаустановить страну по умолчанию, только способ установки предпочтительных стран для раскрывающегося списка и автоматического выбора первой страны в этом массиве

Любые мысли о том, как этого добиться, кроме очевидного обходного пути динамического введения желаемогозначение для страны по умолчанию в первом индексе массива preferredCountries?

** Обновление ** Причина, по которой я не хотел использовать для этого массив preferredCountries, потому что тогда мне понадобится егодинамически.Я не смог найти способ изменить выпадающие страны вживую, так как компонент ngx-intl-tel-input устанавливает страны, перечисленные в preferredCountries, путем реализации OnInit

    ngOnInit() {

    this.fetchCountryData();

    if (this.preferredCountries.length) {
        this.preferredCountries.forEach(iso2 => {
            const preferredCountry = this.allCountries.filter((c) => {
                return c.iso2 === iso2;
            });

            this.preferredCountriesInDropDown.push(preferredCountry[0]);
        });
    }
    if (this.onlyCountries.length) {
        this.allCountries = this.allCountries.filter(c => this.onlyCountries.includes(c.iso2));
    }
    if (this.preferredCountriesInDropDown.length) {
        this.selectedCountry = this.preferredCountriesInDropDown[0];
    } else {
        this.selectedCountry = this.allCountries[0];
    }

Если выЯ знаю, как обойти эту проблему, я был бы рад использовать массив preferredCountries для достижения желаемого поведения, однако вышеизложенное препятствует мне в этом на данный момент.

1 Ответ

0 голосов
/ 08 мая 2019

Как показано на github, вы можете установить [preferredCountries]="[yourDefaultCountryCode]", например, это покажет Великобританию:

<ngx-intl-tel-input 
    [cssClass]="'custom'" 
    [preferredCountries]="['gb']" <!-- THIS ONE -->
    [enablePlaceholder]="true"
    [enableAutoCountrySelect]="true"
    name="phone" 
    formControlName="phone"></ngx-intl-tel-input> 
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...