AngularJS -切换视图
AngularJS - Toggle view
我有下面的控制器函数,它返回一个布尔值。
当前HTML:
<a href="#" ng-click="collapseNavbar(true)" ng-model="collNavbar">
<i class="fa fa-arrow-right"></i>
</a>
layoutController:
<>之前App.controller('layoutController', ['$scope', function($scope) {美元的范围。collapseNavbar = function(val) {返回美元范围。Value = !val;}}))之前基于该值,我需要为<body>
标签分配一个类,如yes或no。
早先我是用这样的东西来做的。
HTML:<div class="toggle-sidebar navbar-nav">
<ul class="nav navbar-nav">
<li>
<a href="#" ng-click="isActive = !isActive" ng-model="collNavbar">
<i class="fa fa-arrow-right"></i>
</a>
</li>
</ul>
</div>
HTML2
<body ng-class="{'yes': isActive, 'no': !isActive}" ng-controller="layoutController">
但是我不希望我的代码在HTML文件中。相反,我为它创建了一个名为layoutController.js
的控制器,上面是其中使用的代码。
我能够将布尔值作为一个类传递给页面加载上的body
标签。
但是我不知道如何在点击a
标签时传递它,因为我已经使用ng-click
传递了函数。
任何建议,比如我该怎么做,都会对我的学习很有帮助。
试试这个:
<body ng-controller="layoutController" ng-app="App"
ng-class="getClass(value)">
<a href="#" ng-click="collapseNavbar(!value)" ng-model="collNavbar">
<i class="fa fa-arrow-right"></i>
</a>
</body>
控制器:
App.controller('layoutController', ['$scope', function($scope) {
$scope.collapseNavbar = function(val) {
return $scope.value = val;
}
$scope.getClass = function(value) {
return value ? 'yes': 'no';
}
}])
ngClass指令允许你通过绑定一个表示所有要添加的类的表达式来动态地在HTML元素上设置CSS类。
设置表达式的一种方法是返回一个表示CSS类的字符串(或以空格分隔的字符串)。HTML
<body ng-class="{'yes': isActive, 'no': !isActive}" ng-controller="layoutController">
<div class="toggle-sidebar navbar-nav">
<ul class="nav navbar-nav">
<li>
<a href="#" ng-click="collapseNavbar()" ng-model="collNavbar">
<i class="fa fa-arrow-right"></i>
</a>
</li>
</ul>
</div>
</body>
控制器App.controller('layoutController', ['$scope', function($scope) {
$scope.collapseNavbar = function() {
$scope.isActive= ! $scope.isActive;
}
}]);
或
HTML <body class="{{className}}" ng-controller="layoutController">
<div class="toggle-sidebar navbar-nav">
<ul class="nav navbar-nav">
<li>
<a href="#" ng-click="collapseNavbar()" >
<i class="fa fa-arrow-right"></i>
</a>
</li>
</ul>
</div>
</body>
控制器App.controller('layoutController', ['$scope', function($scope) {
$scope.collapseNavbar = function() {
if($scope.isActive)
$scope.className='yes';
else
$scope.className='no';
$scope.isActive = !$scope.isActive;
}
}]);
相关文章:
- 如何包含特定于每个视图angularjs的javascript文件
- 如何在ui路由器angularjs中只更改子ui视图,同时保持父视图不变
- angularjs中带有ui路由器的嵌套视图
- 如何在AngularJS视图中使用promise(ng-show)
- AngularJS:点击选项卡刷新视图中的数据
- 如何在angularjs中检查Kendo树视图数据绑定事件
- JSON范围的更改没有反映在angularjs中的视图中
- 如何将Laravel变量传递到我的AngularJS视图中
- ASP.NET angularjs重定向到控制器的另一个视图
- 将全局变量从控制器调用到HTML视图AngularJS
- 将数据从控制器调用到HTML视图AngularJS
- 将变量传递到html视图angularjs中
- 从指令视图 AngularJS 调用控制器中的函数
- 在将模板加载到视图 AngularJS 后执行 javascript
- 递归自定义树视图 angularjs 指令调用 ng 单击两次
- 可以't在相同的局部视图Angularjs中加载两个控制器
- 使用表单填充数组,并在单独的视图angularjs中显示该数组
- 使用ng指令将HTML插入视图::AngularJS+JavaScript+Ionic
- 如何从分层数据生成剑道树视图?AngularJS
- SQL Server数据透视表返回视图(AngularJS)