2

「user」というモデルがあり、「user」には「login」というコントローラーと「userMenu」というディレクティブがあります。私が達成しようとしているのは、userMenu ディレクティブがモジュールで利用可能なコントローラー「login」を使用することです。 . モジュールとディレクティブがどのように機能するかよくわからないかもしれませんが、次のことを行っています。

まず、コントローラーを次のように定義します。

angular.module('user', []).
controller('login', ['$scope', '$http', function($scope, $http){
    $scope.logIn = function(){
        //Do something...
    }
}

それから、私の指示で...

angular.module('user', []).
directive('userMenu', function(){
    return {
    priority: 0,
    templateUrl: 'app/includes/user/menu.html',
    replace: true,
    restrict: 'A',
    controller: 'login',
    }
});

しかし、私はこれを取得します:

Error: Argument 'login' is not a function, got undefined

モジュール内でのディレクティブとコントローラーの使用について教えてください。

4

1 に答える 1

3

user問題は、ディレクティブの準備中にディレクティブを再定義していることです。コントローラーとディレクティブの両方を同じモジュールに登録したかったと思います。その場合、次のようにディレクティブを登録できます。

angular.module('user').directive('userMenu', function(){
    return {
    ...
    }
});

の呼び出しに 2 番目の引数 ([]) がないことに注意してangular.moduleください。これは、新しいモジュールを定義する代わりに、既に定義されているモジュールのインスタンスを取得することを意味します。

于 2013-02-18T13:38:38.917 に答える