2016-05-06 5 views
0

Я новичок в AngularJS. Кто-нибудь знает, почему я получаю эту ошибку - Argument 'activationCtrl' is not a function, got undefinedAngularJS - Невозможно определить контроллер

HTML -

<div class="form-group row"> 
    <label for="member" class="col-sm-2 form-control-label">Member</label> 
    <div class="col-sm-10"> 
     <input type="number" class="form-control" id="memberId" placeholder="Member" ng-click = "activation.zipcode()"> 
    </div> 
</div> 

Контроллер -

angular.module('app', []) 
    .controller('activationCtrl', activationCtrl); 

    function activationCtrl() { 
    var self = this; 

self.zipCode = function() { 
     console.log("zipcode"); 
} 
    } 

Государство -

.when('/activation', { 
     templateUrl: 'views/activation.html', 
     controller: 'activationCtrl', 
     controllerAs: 'activation' 
     }) 

ответ

0

Я thkink проблема может быть в неправильном порядке определения контроллера и государства. Вам нужно определить контроллер до состояния (маршрут), чтобы вы могли его использовать.

Альтернативно вы можете пропустить регистрацию контроллера в модуле и просто определить его как отдельную функцию с свойством $inject и передать эту функцию в определении состояния (маршрута). Например .:

angular.module('app', ['ngRoute']); 

angular.module('app') 
    .config([$routeProvider, function($routeProvider) { 
     routeProvider 
     .when('/activation', { 
      templateUrl: 'views/activation.html', 
      controller: activationCtrl, 
      controllerAs: 'activation' 
     }) 
}]); 

function activationCtrl() { 
    var self = this; 
    self.zipCode = function() { 
    console.log("zipcode"); 
    } 
} 
activationCtrl.$inject = []; 
0

Вы должны зарегистрировать угловой контроллер HTML, например:

использование ng-controller="activationCtrl"

попытаться положить, что в тело тега вашей HTML страницы:

<body ng-controller="activationCtrl">

+0

В данном случае это не обязательны, чтобы добавить директиву нг-контроллер в любом месте, так как в коде выше контроллера устанавливается в определении шаблона. – k10der

0

Аргумент «activationCtrl» не является функцией, получил неопределенный

Выше ошибка возникает, когда вы определяете контроллер, но не импортировать activationCtrl.js файл в вас HTML.

Смежные вопросы