从angularjs1.3开始,已经不容许定义全局的controller, 因此网上好多老的demo在运行的时候会报没有注册对应的controller。因此,1.3之后的angrularjs 必须以下定义:html
angular.module('pro01App2' , []) .controller('AboutCtrl', function () { });
再用yoman生成的angrularjs项目,头部的导航条点击没有相应。
看浏览器的地址,多了一个感叹号,可是在index.html 里面是以下的显示:angularjs
<ul class="nav navbar-nav"> <li class="active"><a href="#/">Home</a></li> <li><a ng-href="#/about">About</a></li> <li><a ng-href="#/">Contact</a></li> </ul>
有以下的处理方法:
<ul class="nav navbar-nav"> <li class="active"><a href="#!/">Home</a></li> <li><a ng-href="#!/about">About</a></li> <li><a ng-href="#!/">Contact</a></li> </ul>
修改办法: 在 app.js里面,添加以下的代码:api
$locationProvider.hashPrefix('');
完整的实例:
app.config(function ($routeProvider , $locationProvider) { $locationProvider.hashPrefix(''); $routeProvider .when('/', { templateUrl: 'views/main.html', controller: 'MainCtrlTest', controllerAs: 'main' }) .when('/about', { templateUrl: 'views/about.html', controller: 'AboutCtrlTest', controllerAs: 'about' }) .otherwise({ redirectTo: '/about' }); });