我有一个名为'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
请您指导我在模块中使用指令和控制器吗?
答案 0 :(得分:3)
问题是您在准备指令时正在重新定义user
指令。我认为你想在同一个模块上注册一个控制器和一个指令。如果是这样,您可以像这样注册您的指令:
angular.module('user').directive('userMenu', function(){
return {
...
}
});
请注意,angular.module
的调用没有第二个参数([]),这意味着您要检索已定义模块的实例,而不是定义新模块的实例。