无法使用下拉列表更改视图。我能够获得下拉列表,但点击不会更改视图

时间:2016-12-23 06:08:46

标签: jquery html css angularjs

在我的应用程序中有不同的视图,所以我从用户的下拉列表可以更改视图。我能够查看下拉列表,但我无法通过单击更改视图。这种情况发生在chrome和Opera。

<div class="btn-group btn-group-xs" >
<button type="button" class="btn btn-xs btn-default" data-toggle="dropdown">
    <table border="0" cellpadding="0" cellspacing="0">
        <tr>
            <td ng-if="(view==1)">View 1</td>
            <td ng-if="(view.id==1)">View 2</td>
            <td ng-if="(view==1)">View 3</td>
            <td class="width10"><span class="fa fa-caret-down"></span><span class="sr-only">Toggle Dropdown</span></td>
        </tr>
    </table>
</button>
<ul role="menu" class="dropdown-menu">
    <li class="dropdown-submenu" ng-click="loadView(1)">
        <div class="">
            <table border="0" cellpadding="0" cellspacing="0">
                <tr>
                    <td>View 1</td>
                </tr>
            </table>
        </div>
    </li>
    <li class="dropdown-submenu" ng-click="loadView(2)">
        <div class="">
            <table border="0" cellpadding="0" cellspacing="0">
                <tr>
                    <td>View 1</td>
                </tr>
            </table>
        </div>
    </li>
    <li class="dropdown-submenu" ng-click="loadView(3)">
        <div class="">
            <table border="0" cellpadding="0" cellspacing="0">
                <tr>
                    <td>View 1</td>
                </tr>
            </table>
        </div>
    </li>
</ul>

1 个答案:

答案 0 :(得分:0)

我不太清楚你的ng-if在做什么,而且没有你的函数代码<rewrite> <rules> <clear /> <rule name="Redirect non-www OR non-https to https://www"> <match url=".*" /> <conditions logicalGrouping="MatchAny"> <add input="{HTTP_HOST}" pattern="^domain.com$" /> <add input="{HTTPS}" pattern="off" /> </conditions> <action type="Redirect" url="https://www.domain.com/prog/{R:0}" redirectType="Permanent"/> </rule> </rules> </rewrite> 。我想,您希望在函数中传递1到3作为参数,而不是使用此数字显示/隐藏您的视图。也许这会有所帮助:

在控制器中声明一个变量:

loadView()

比写这样的函数:

$scope.viewNumber = 1; //Default loading view 1

而不是像这样使用$scope.loadView() = function(viewNr) { $scope.viewNumber = viewNr; }

ng-if

所以我不确定这是否是您寻找的解决方案,但它也不清楚,您真正想要实现的目标......所以我在下面做的是,声明我传递的视图号的变量单击下拉列表中的<td ng-if="viewNumber == 1">View 1, if viewNumber is 1</td> <td ng-if="viewNumber == 2">View 2, if viewNumber is 2</td> <td ng-if="viewNumber == 3">View 3, if viewNumber is 3</td> 元素时,我的函数的参数。我用这个数字改变三个视图,在li中检查它。我希望这会对你有所帮助。