AngularJS нг-клик работает только на второй клик - PullRequest
0 голосов
/ 25 апреля 2018

Попытка свернуть выпадающее меню (выбор языка) в навигационной панели начальной загрузки мобильного устройства. При первом нажатии раскрывающееся меню с языками открывается нормально, после смены языков закрывающееся меню языков закрывается, но когда я пытаюсь снова изменить язык, мне нужно дважды щелкнуть раскрывающееся меню, чтобы открыть его. Кто-нибудь может мне помочь с этим?

    <li class="dropdown" dropdown style="margin-top: 25%; left: 7.5%;">
            <a href="#" class="dropdown-toggle" dropdown-toggle role="button" ng-click="visible = true">
                {{vm.languageSel.name}}
                <span class="caret"></span>
            </a >
            <ul class="dropdown-menu" ng-show="visible">
                <li ng-repeat="lang in vm.languages" ng-click="$parent.visible = false">
                    <a ng-click="vm.chgLang($index)">
                        {{lang.name}}
                    </a>
                </li>
            </ul>
        </li>

Ответы [ 2 ]

0 голосов
/ 25 апреля 2018

Я думаю, это из-за $ parent. Можете ли вы попробовать без этого? Как это:

<li class="dropdown" dropdown style="margin-top: 25%; left: 7.5%;">
        <a href="#" class="dropdown-toggle" dropdown-toggle role="button" ng-click="visible = true">
            {{vm.languageSel.name}}
            <span class="caret"></span>
        </a >
        <ul class="dropdown-menu" ng-show="visible">
            <li ng-repeat="lang in vm.languages" ng-click="visible = false">
                <a ng-click="vm.chgLang($index)">
                    {{lang.name}}
                </a>
            </li>
        </ul>
    </li>
0 голосов
/ 25 апреля 2018

Я думаю, это потому, что visible по умолчанию инициализируется как false.Попробуйте добавить ng-init="visible = true" в первую директиву li

...