AngularJS ng-click仅在第二次点击时工作

时间:2018-04-25 14:39:53

标签: javascript angularjs angularjs-scope angularjs-ng-click angularjs-ng-show

尝试在移动引导程序导航栏中折叠下拉菜单(语言选择)。在第一次单击时,带有语言的下拉菜单打开正常,更改语言后,下拉语言菜单关闭,但当我尝试再次更改语言时,我必须双击下拉列表才能打开它。任何人都可以帮我这个吗?

    <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 :(得分:0)

我认为这是因为visible默认初始化为false。尝试在第一个ng-init="visible = true"指令

上添加li

答案 1 :(得分:0)

我认为这是因为$ 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>