如何使用链接触发ng-switch?
我当前的html:
<ul class="nav nav-list bs-docs-sidenav affix sidenav">
<li><a href="#" ng-click="page='resources'">Resources</a></li>
<li><a href="#" ng-click="page='users'">Users</a></li>
</ul>
<div ng-switch on="page">
<div ng-switch-when="resources">
<h1>resources Div</h1>
</div>
<div ng-switch-when="users">
<h1>Users</h1>
</div>
<div ng-switch-default>
<h1>Default</h1>
</div>
</div>我的控制器:
function Ctrl($scope) {
$scope.page = 'users';
}我遗漏了什么?
发布于 2016-10-19 17:13:23
我偶然发现了一个类似的问题,并通过在作用域上使用对象而不是属性来解决它,这样值就不会被ng-switch指令覆盖。
提出的问题和这个解决方案之间的区别是,我使用ng-switch作用域更改了页面值。
在控制器中声明nav对象
$scope.nav = {
page : 1
}HTML
<div ng-switch="nav.page">
<div ng-switch-when="1">
First page
<a href="#" ng-click="nav.page=2">Resources</a>
</div>
<div ng-switch-when="2">
Second page
<a href="#" ng-click="nav.page=3">Resources</a>
</div>
<div ng-switch-when="2">
Third page
</div>
发布于 2013-06-11 02:43:28
您必须将您的控制器绑定到顶级元素。这是fiddle
HTML:
<div ng-app ng-controller="Ctrl">
<ul class="nav nav-list bs-docs-sidenav affix sidenav">
<li><a href="#" ng-click="page='resources'">Resources</a></li>
<li><a href="#" ng-click="page='users'">Users</a></li>
</ul>
<div ng-switch on="page">
<div ng-switch-when="resources">
<h1>resources Div</h1>
</div>
<div ng-switch-when="users">
<h1>Users</h1>
</div>
<div ng-switch-default>
<h1>Default</h1>
</div>
</div>
</div>https://stackoverflow.com/questions/17030511
复制相似问题