Загружать данные списка усилителей только после события - PullRequest
0 голосов
/ 04 апреля 2019

Я пытаюсь найти способ загружать данные только в мой второй список усилителей, только если первый имеет какое-либо выбранное значение, я также не могу найти способ, чтобы второй заполнитель отображал список заполнителей.up.

<div class="row">
    <div class="col-sm-4 position-inherit">
        <div class="form-group tt-dark select-site">
            <amp-state id="states" src="/BuscaEstadosAmpRequest?isLead=true&isTeste=false&isMapa=false"></amp-state>

            <amp-list layout="fixed-height"
                height="40"
                src="/BuscaEstadosAmpRequest?isLead=true&isTeste=false&isMapa=false"
                single-item
                items="."
                noloading
                binding="no">
                <template type="amp-mustache">
                    <select id="stateGeo" on="change:
                            AMP.setState({
                                selectedState: states.items.filter(x => x.ID == event.value)[0]
                            }); cities.refresh">
                        <option value="" [disabled]="selectedState">UF</option>

                        {{#items}}
                        <option value="{{ID}}">{{Sigla}}</option>
                        {{/items}}
                    </select>
                </template>
            </amp-list>
        </div>
    </div>

    <div class="col-sm-8">
        <div class="form-group tt-dark select-site">
            <amp-state id="cities"
                [src]="'/BuscaCidadesAmpRequest?isLead=true&isTeste=false&isMapa=false&estadoId=' + selectedState.ID">
            </amp-state>

            <amp-list layout="fixed-height" height="40" [src]="cities" single-item items="." noloading binding="no">
                <template type="amp-mustache">
                    <select id="cityGeo" on="change:
                            AMP.setState({
                                cityId: event.value
                            })">
                        <option value="">ESCOLHA UMA CIDADE</option>

                        {{#items}}
                        <option value="{{ID}}">{{Nome}}</option>
                        {{/items}}
                    </select>
                </template>
                <div placeholder role="listitem">
                    <select disabled>
                        <option value="">ESCOLHA UMA CIDADE</option>
                    </select>
                </div>
            </amp-list>
        </div>
    </div>

    <div class="form-group tt-dark select-site">
        <amp-state id="units"
            [src]="'/BuscaUnidadesAmpRequest?isLead=true&isTeste=false&isMapa=false&cidadeId=' + selectedCity.ID">
        </amp-state>

        <amp-list layout="fixed-height" height="40" [src]="units" single-item items="." noloading>
            <template type="amp-mustache">
                <select id="unitGeo" on="change:
                        AMP.setState({
                            unitId: event.value
                        })">
                    <option value="">ESCOLHA UMA UNIDADE</option>

                    {{#items}}
                    <option value="{{ID}}">{{NomeFantasia}}</option>
                    {{/items}}
                </select>
            </template>
        </amp-list>
    </div>
</div>

Если не возможно сделать то, что я хотел, какой будет лучший вариант для этого?

Также, как я могу отключить первый вариант, чтобы запретить пользователю когда-либовыбрав его?

<option value="" [disabled]="selectedState">UF</option>

РЕДАКТИРОВАТЬ Забыл упомянуть две вещи, как мне вручную обновить состояние усилителя для городов вручную после того, как я выбрал штат?И как мне вручную запустить состояние со значением по умолчанию?Я пытался использовать следующее, но всегда заканчивал с предупреждением, что состояние является нулевым:

<amp-state id="teste">
    <script type="application/json">
        {
            "ID": 0,
            "Nome": "",
            "Sigla": ""
        }
    </script>
</amp-state>

1 Ответ

0 голосов
/ 12 апреля 2019

как вручную запустить состояние со значением по умолчанию?Я пытался использовать следующее, но всегда получал предупреждение о том, что состояние равно нулю

Вы не можете - в привязках усилителей нет начального состояния.Вы должны заполнить элемент html и использовать amp-bind только при обновлении значения.

Вы можете пойти по этому пути:

{{#items}}
<option value="{{ID}}" {{SELECTED}}>{{Nome}}</option>
{{/items}}

и изменить свой объект json на что-то вродечто:

{
  "id" : "1",
  "name" : "Paris",
  "selected" : "selected"
}

должен выполнить работу

...