我只是在我的根路径上尝试添加课程。
我想要什么
我希望我的标题在根路径上有一个类fixed
,当它转到其他地方时会被删除。
我做了什么
我的html:
<header ng-class="currentPath === '/' ? 'main-header fixed' : 'main-header' ">
并在我的控制器上:
'use strict';
angular.module('hipodromoApp')
.controller('MainCtrl', function ($scope, $route, $location, $rootScope) {
$scope.awesomeThings = [
'HTML5 Boilerplate',
'AngularJS',
'Karma'
];
$scope.currentPath = $location.path();
});
我的html总是会返回错误的main-header
而没有fixed
类。
问题
如果我位于根路径fixed
,并且当我去其他地方时将其删除,我该如何向我的html添加名为/
的课程?
谢谢!
答案 0 :(得分:0)
你做的对我有用。从ng-class中删除main-header并将其放在常规类中是有意义的,但这可能是个人的好处。
你有没有console.log你的$ scope.currentPath?我想它可能不是/。 你确定你正在寻找合适的范围吗?没有ng-repeat子范围或类似的东西。
答案 1 :(得分:0)
我能够为此解决问题。
我使用以下内容创建了index_controller
:
'use strict';
/**
* @ngdoc function
* @name hipodromoApp.controller:IndexControllerCtrl
* @description
* # IndexControllerCtrl
* Controller of the hipodromoApp
*/
angular.module('hipodromoApp')
.controller('IndexControllerCtrl', function ($scope, $location, $rootScope) {
$scope.awesomeThings = [
'HTML5 Boilerplate',
'AngularJS',
'Karma'
];
// console.log($location.path());
});
// this will run every time the route changes
angular.module('hipodromoApp')
.run(['$rootScope','$location', function($rootScope, $location) {
$rootScope.$on('$routeChangeSuccess', function() {
var location = $location.path();
if (location == '/') {
$rootScope.bodyClass = 'fixed';
}else{
$rootScope.bodyClass = '';
}
});
}]);
并在index.html中添加了控制器
<div class="" ng-view="" ng-controller="IndexControllerCtrl"></div>
刚刚添加了这个
<header class="main-header {{bodyClass}}">
当{{bodyClass}}
转到根路径时会变为fixed
,而当它位于不同的路径时会变为空字符串。
我不确定这是否是解决此问题的最佳方式,但我做了我需要做的事情。