我正在为移动应用程序dev开发Cordova和Angular JS但是我遇到了CSS类的困难,但没有按预期显示。
1)style.css文件中的CSS代码:
.nav .active {
border-top: 3px solid #11a7ab; }
2)JS控制器代码NavCtrl.js(我有2个标签HOME和ABOUT),这里我初始化主页选项卡:
function NavCtrl($scope){
$scope.menu = 'home';
}
3)html代码如下:
<!DOCTYPE html>
<html ng-app="app">
<head>
<meta charset="utf-8" />
<meta name="viewport" content="user-scalable=no, initial-scale=1, maximum-scale=1, minimum-scale=1, width=device-width, target-densitydpi=device-dpi" />
<link href='http://fonts.googleapis.com/css?family=Ubuntu:400,700' rel='stylesheet' type='text/css'>
<link rel="stylesheet" type="text/css" href="css/style.css" />
<title>Hello World</title>
</head>
<body>
<header class="header">
My app
</header>
<section ng-view class="view">
</section>
<nav class="nav" ng-controller="NavCtrl">
<a href="#home" ng-click="menu = 'home'" ng-class="{'active': menu=='home'}"><i class="icon-home"></i></a>
<a href="#about" ng-click="menu = 'about'" ng-class="{'active': menu=='about'}"><i class="icon-about"></i></a>
</nav>
</script>
<script src="js/jquery.js"></script>
<script src="js/angular-1.6.4.js"></script>
<script src="js/controller/NavCtrl.js"></script>
<script src="js/app.js"></script>
<script>
</body>
</html>
请注意,当我使用AngularJS v1.1.5时,代码没有任何问题,但是当我使用AngularJS v1.6.4时,CSS&#34; active&#34;没有出现。我是否遗漏了配置以使代码与AngularJS v1.6.4一起正常工作?
答案 0 :(得分:1)
您没有向我们展示您的app.js,但看起来您没有将您的控制器注册到您应用的当前模块中,如官方文档中所示:
angular.module('controllerAsExample', [])
.controller('SettingsController1', SettingsController1);
并且还用此替换$ scope并使用ng-controller =&#34; YourController作为vm&#34; ...... {{vm.yourVar}}
查看更适合组件架构的1.6最佳实践。我们不再依赖$ scope,而是依靠类封装来处理范围变量