Angular JS - 从JS文件加载控制器

时间:2013-10-29 21:55:42

标签: angularjs

这个控制器工作正常:

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:我正在研究的啧啧被称为“嵌套范围”,如果这让任何人都能更好地了解我想要做的事情。

2 个答案:

答案 0 :(得分:1)

好吧,就像我说的,我是AngularJS的新手,我有点白痴。我没有在我的<head>上将我的外部JS脚本链接放在我的index.html文件中。而已。我无法相信我忽视了这一点。

答案 1 :(得分:0)

尝试更改控制器声明:

angular.module('airline')
       .controller('DestinationsCtrl',function($scope){
         $scope.setActive('destinations');
       });

然后这个控制器将按预期工作。

希望这对你有所帮助。