Angular.js:当$state.current.name是某个值时,ng-show元素
Angular.js: ng-show element when $state.current.name is a certain value
我希望只在$state.current.name
等于about.list
时显示HTML块。到目前为止,我有以下代码,但它似乎没有根据状态切换元素。
index . html
<nav class="global-navigation">
<ul class="list">
<li class="list-item">
<a class="list-item-link" ui-sref="home">
Home
</a>
</li>
<li class="list-item">
<a class="list-item-link" ui-sref="about">
About
</a>
</li>
<li class="list-item" ng-show="$state.current.name == 'about.list'">
<a class="list-item-link" ui-sref="about.list">
List
</a>
</li>
</ul>
</nav>
app.js
var myApp = angular.module('myApp', ['ui.router'])
.config(['$urlRouterProvider', '$stateProvider',
function($urlRouterProvider, $stateProvider) {
$urlRouterProvider.otherwise('/404.html');
$stateProvider.
// Home
state('home', {
url: '/',
templateUrl: 'partials/_home.html',
controller: 'homeCtrl'
}).
// About
state('about', {
url: '/about',
templateUrl: 'partials/_about.html',
controller: 'aboutCtrl'
}).
// About List
state('about.list', {
url: '/list',
controller: 'aboutCtrl',
templateUrl: 'partials/_about.list.html',
views: {
'list': { templateUrl: 'partials/_about.list.html' }
}
});
}]
);
您可以使用像isState或includedByState这样的过滤器。
ng-if="'about.list' | isState" // exactly 'about.list'
ng-if="'about' | includedByState" // works for about and its children about.*
或
JS
.run(function ($state,$rootScope) {
$rootScope.$state = $state;
})
HTML
data-ng-show="$state.includes('about.list')"
视图(html)不知道变量$state
。它只知道与视图相关联的$scope
。
你可以将$state
变量暴露在与此视图相关的控制器中的$scope
上(你也可能必须将$state注入到你的控制器中):
$scope.uiRouterState = $state;
然后稍微改变标记中的表达式:
<li class="list-item" ng-show="uiRouterState.current.name == 'about.list'">
相关文章:
- 使用angularjs ng Show/ng hide显示和隐藏不同的内容
- 我需要NG-IF/NG-SWITCH还是NG-SHOW&NG-HIDE
- 如何在AngularJS视图中使用promise(ng-show)
- AngularJS:如何使用java脚本函数更改跨度的ng-show条件
- ng show和ng hide don'I don’我一秒钟都不工作
- 基于参数(angular)调用特定元素上的ng show
- ng-show 不更新 DOM 元素
- 如何通过不同的视图/控制器在特定元素上设置 ng-show
- Angular:使用$last使最后一个元素使用ng-show可见
- 使用ng-if/ng-show/ng-switch的Angular条件显示会简要地显示这两个元素
- AngularJS ng-show一个条件和多个元素
- Ng-show和ng-hide用于元素-当单击隐藏项时,再次单击时,它们都会重新出现
- AngularJS的ng-show指令在隐藏元素之前显示元素
- 在ng-repeat中查找特定元素的Ng-show
- ng-show在条件为false时隐藏元素的延迟
- AngularJS的ng-show不能处理新的DOM元素
- 有没有可能在Angular的ng-show表达式中获得HTML元素的计数?
- Data-ng-show和数组元素
- ng-hide和ng-show实际加载元素并隐藏它,还是只在ng-show上加载
- Angular.js:当$state.current.name是某个值时,ng-show元素