在我的应用程序中有不同的 View ,所以我有一个用户可以更改 View 的下拉列表。我可以查看下拉菜单,但无法通过单击来更改 View 。这发生在 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>
最佳答案
我不太清楚你的 ng-if 在做什么,也没有你的函数 loadView()
的代码。我认为,您想在函数中将 1 传递给 3 作为参数,而不是使用此数字显示/隐藏您的 View 。也许这有帮助:
在你的 Controller 中声明一个变量:
$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>
所以我不确定这是否是您寻找的解决方案,但也不清楚您真正想要实现的目标...所以我在下面所做的是,为我传递的 View 编号声明一个变量当我单击下拉列表中的 li
元素时,我的函数的参数。然后我用这个数字改变了三个 View ,在 ng-if
中检查它。希望对您有所帮助。
关于jquery - 无法使用下拉菜单更改 View 。我能够获得下拉菜单,但单击不会更改 View ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41296041/