2016-05-06 13 views
0

Ich bin neu in AngularJS. Weiß jemand, warum ich diese Störung erhalte - Argument 'activationCtrl' is not a function, got undefinedAngularJS - Controller kann nicht definiert werden

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> 

-Controller -

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

    function activationCtrl() { 
    var self = this; 

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

Staat -

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

Antwort

0

ich thkink das Problem in der falschen Reihenfolge von und Definitionen des Staat des Controllers sein könnte. Sie müssen den Controller vor dem Status (Route) definieren, damit Sie ihn dort verwenden können.

Alternativ können Sie die Reglerregistrierung im Modul überspringen und nur als separate Funktion mit der Eigenschaft $inject definieren und diese Funktion in der Zustandsdefinition (Route) übergeben. Z.B .:

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

Sie benötigen Winkel Controller registrieren der HTML wie folgt:

Verwendung ng-controller="activationCtrl"

versuchen, dass im Körper-Tag Ihrer HTML-Seite setzen:

<body ng-controller="activationCtrl">

+0

in gegebenem Fall ist es nicht notwendig eine ng-Controller-Richtlinie überall, wie in der obigen Code-Controller in Template-Definition wird hinzuzufügen. – k10der

0

Argument 'activationCtrl' ist keine Funktion, bekam undefined

Above Fehler kommt, wenn Sie Controller definieren, aber Sie nicht activationCtrl.js Datei in Sie HTML importieren.

Verwandte Themen