0

このコントローラーは問題なく動作します。

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が言うように、なぜ私のコントローラは関数名でロードされないのですか? tut のファイルは機能しているようです。私のはそうではありません。

編集: コンソール ログに次のように表示されます: エラー: [ng:areq] 引数 'DestinationsCtrl' は関数ではなく、未定義です

編集2:私がやろうとしていることを誰かがよりよく理解できるなら、私が取り組んでいたtutは「Nesting Scopes」と呼ばれていました。

4

2 に答える 2

1

わかりました、私が言ったように、私は AngularJS に不慣れで、ちょっとばかです。<head>index.html ファイルに外部 JS スクリプト リンクを配置していませんでした。それでおしまい。これを見落としたなんて信じられない。

于 2013-10-30T16:53:43.283 に答える