簡體   English   中英

AngularJS-無法定義控制器

[英]AngularJS - Unable to define controller

我是AngularJS的新手。 有誰知道我為什么收到此錯誤- Argument 'activationCtrl' is not a function, got undefined

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'
      })

您需要像這樣將您的角度控制器注冊到HTML:

使用ng-controller="activationCtrl"

嘗試將其放在html頁面的body標簽中:

<body ng-controller="activationCtrl">

我認為問題可能出在控制器和狀態的定義順序錯誤。 您需要在狀態(路由)之前定義控制器,以便可以在此處使用它。

另外,您可以跳過模塊中的控制器注冊,而僅將其定義為帶有$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 = [];

參數'activationCtrl'不是一個函數,未定義

當您定義控制器時出現上述錯誤,但是沒有在HTML中導入activationCtrl.js文件。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM