启动应用程序时出现此错误 这是控制器:
myApp
.controller('NavController',
['$scope', '$location', function ($scope, $location) {
$scope.navClass = function (page) {
var currentRoute = $location.path().substring(1) || 'main';
return page === currentRoute ? 'active' : '';
};
}]);
这是app.js:
angular.module('myApp',[
'ngRoute'])
.config(['$routeProvider',
function($routeProvider){
$routeProvider
.when('/',{
templateUrl:'views/main.html',
controller: 'mainCtrl'
})
.when('/team1',{
templateUrl:'views/team1.html',
controller: 'mainCtrl'
})
}]);
和我使用控制器的htmlIndex:
<header>
<div class="container">
<div class="navbar">
<ul class="nav navbar-nav" ng-controller="NavController">
<li ng-class="navClass('home')"><a href='#/'>Home</a></li>
<li ng-class="navClass('home')"><a href='#/team1'>team1</a></li>
</ul>
</div>
</div>
</header>
单击导航按钮没有任何反应,在控制台中我收到此错误“参数'NavController'不是函数,未定义”
答案 0 :(得分:1)
也许你以错误的方式打电话给控制器。它应该在这样的应用程序上调用:
angular.module('myApp')
.controller('NavController',
['$scope', '$location', function ($scope, $location) {
$scope.navClass = function (page) {
var currentRoute = $location.path().substring(1) || 'main';
return page === currentRoute ? 'active' : '';
};
}]);
看看这个小提琴,找到一个完整的代码:https://jsfiddle.net/q91jozyr/
答案 1 :(得分:0)
使用angular.module('myApp', ['ngRoute'])
定义模块时,需要在变量myApp
中保存引用,以便在声明控制器时重用模块。
<强> app.js:强>
var myApp = angular.module('myApp', ['ngRoute'])
或者我建议通过重复使用这样的模块来调用控制器:
<强>控制器:强>
angular.module('myApp').controller('NavController', [ /* etc... */ ]);
请注意,如果您没有像angular.module('myApp')
而不是angular.module('myApp', [ ])
那样再次指定依赖关系,则会重复使用该模块。
在这两种情况下,请确保通过将myApp
添加到任何父元素来引导模块ng-app="myApp"
,例如<body>
:
<body ng-app="myApp">