这个控制器工作正常:
function airlineRouter($routeProvider) {
$routeProvider
.when('/',
{
templateUrl:"partials/destinations.html",
controller: function($scope) {
$scope.setActive('destinations');
} //end controller
});
} //end airlineRouter
当我将控制器设置为自己的JS文件时,它不再起作用了。像这样:
function airlineRouter($routeProvider) {
$routeProvider
when('/',
{
templateUrl:"partials/destinations.html",
controller: "DestinationsCtrl"
});
} //end airlineRouter
我的控制器文件位于' root / js / controllers / destinations.js',这是我的app'js'文件驻留。完整的app.js'文件看起来像这样:
angular
.module('airline', ['ngRoute'])
.config(airlineRouter);
function airlineRouter($routeProvider) {
$routeProvider
.when('/',
{
templateUrl:"partials/destinations.html",
controller: "DestinationsCtrl"
}
);
} //end airlineRouter
我的完整控制器JS文件如下所示:
function DestinationsCtrl($scope) {
$scope.setActive('destinations');
} //end DestinationsCtrl
为什么我的控制器按功能名称加载,因为我正在说这个? tut的文件似乎有效。我不是。
编辑:控制台日志显示:错误:[ng:areq]参数' DestinationsCtrl'不是一个功能,未定义
编辑2:我正在研究的啧啧被称为“嵌套范围”,如果这让任何人都能更好地了解我想要做的事情。
答案 0 :(得分:1)
好吧,就像我说的,我是AngularJS的新手,我有点白痴。我没有在我的<head>
上将我的外部JS脚本链接放在我的index.html文件中。而已。我无法相信我忽视了这一点。
答案 1 :(得分:0)
尝试更改控制器声明:
angular.module('airline')
.controller('DestinationsCtrl',function($scope){
$scope.setActive('destinations');
});
然后这个控制器将按预期工作。
希望这对你有所帮助。