Javascript 如果类的主页是angularJS,则添加该类
如果是其索引,则在body标记中添加或删除类 app.jsJavascript 如果类的主页是angularJS,则添加该类,javascript,angularjs,Javascript,Angularjs,如果是其索引,则在body标记中添加或删除类 app.js angular.module('app', [ 'ui.router', 'ngAnimate' ]) .config( [ '$stateProvider', '$urlRouterProvider', function ($stateProvider, $urlRouterProvider) { $urlRouterProvider .otherwise('/'); $statePr
angular.module('app', [
'ui.router',
'ngAnimate'
])
.config(
[ '$stateProvider', '$urlRouterProvider',
function ($stateProvider, $urlRouterProvider) {
$urlRouterProvider
.otherwise('/');
$stateProvider
.state("app", {
url: "",
templateUrl: 'tmpl/app.html'
})
.state('app.about', {
url: '/about',
templateUrl: 'tmpl/aboutus.html'
})
.state('app.result', {
url: '/result',
templateUrl: 'tmpl/search_result.html'
})
}
]
);
index.html
<body class="home" ng-class="" >
添加类(如果其主页为abc.com/),否则删除添加的类,例如:abc.com/#/about
提前谢谢
Kanagan有许多选项可以为body创建控制器来处理此问题,或者使用指令或服务来执行此操作。最简单的选择是使用$rootScope
angular.module('app', [
'ui.router',
'ngAnimate'
])
.run(['$rootScope',function($rootScope){
$rootScope.$on('$stateChangeSuccess', function(event, toState, toParams, fromState, fromParams){
//console.log(toState);
$rootScope.home = (toState.name == 'app');
});
}])
.config(['$stateProvider', '$urlRouterProvider', function ($stateProvider, $urlRouterProvider) {
$urlRouterProvider
.otherwise('/');
$stateProvider
.state("app", {
url: "",
templateUrl: 'tmpl/app.html'
})
.state('app.about', {
url: '/about',
templateUrl: 'tmpl/aboutus.html'
})
.state('app.result', {
url: '/result',
templateUrl: 'tmpl/search_result.html'
})
}]);
然后在html中
<body class="home" ng-class="{'my-home-class':$root.home}">
我没有测试这个。如果不起作用,请执行console.log,登录toState
,查看不同页面上的值,并根据需要调整代码
更新
我创建了一个。我不确定你的app.html中有什么,但按照你的设置方式,我建议为我在示例中创建的
app.home
添加另一个状态。谢谢。我试过了,但没有成功:(你能检查并帮助吗?@Kanagan,正如我提到的,查看控制台。log
会向你显示你需要的内容。toState
是一个包含url、templateUrl和name的对象。我使用toState.name
来确定显示的是哪个视图。我还添加了一个plunker,这样你就可以看到它在运行。