2016-06-28 10 views
0

uiがロードされているときにコントローラを呼び出そうとしていますが、エラーが発生しています。角度jsエラー:引数 'questionsCtrl'は関数ではありません

angular.js:9778 Error: [ng:areq] Argument 'questionsCtrl' is not a function, got string 
http://errors.angularjs.org/1.2.16/ng/areq?p0=questionsCtrl&p1=not%20aNaNunction%2C%20got%string 
    at http://127.0.0.1:60668/js/angular.js:78:12 
    at assertArg (http://127.0.0.1:60668/js/angular.js:1443:11) 
    at assertArgFn (http://127.0.0.1:60668/js/angular.js:1453:3) 
    at http://127.0.0.1:60668/js/angular.js:7131:9 
    at http://127.0.0.1:60668/js/angular-ui-router.js:2797:28 
    at nodeLinkFn (http://127.0.0.1:60668/js/angular.js:6579:13) 
    at compositeLinkFn (http://127.0.0.1:60668/js/angular.js:5986:15) 
    at publicLinkFn (http://127.0.0.1:60668/js/angular.js:5891:30) 
    at updateView (http://127.0.0.1:60668/js/angular-ui-router.js:2733:23) 
    at http://127.0.0.1:60668/js/angular-ui-router.js:2697:11 

私のコードは次のとおりです。

app.jsあなたはコントローラを定義するときに、関数を参照する必要がある

(function() { 
    "use strict"; 
    var app = angular.module("autoQuote",["ui.router"]); 

    app.config(["$stateProvider","$urlRouterProvider", function($stateProvider,$urlRouterProvider){ 
     $urlRouterProvider.otherwise("/"); 

     $stateProvider 
      .state("step1", { 
       url : "/", 
       templateUrl : "step1.html", 
       controller: "questionsCtrl" 
      })  
      .state("step2", { 
       url : "/step2", 
       templateUrl : "step2.html", 
       controller: "questionsCtrl" 
      }) 
    }] 
    ); 
}()); 

questionsCtrl.js

(function() { 
    "use strict"; 

    angular 
    .module("autoQuote") 
    .controller("questionsCtrl",["questionsCtrl"]); 

    function questionsCtrl() { 
     console.log('here in questionsCtrl'); 
    } 

}()); 
+0

を参照するために

.controller('questionsCtrl', ['$scope', function ($scope) { }]); 

あなたが正しくあなたのHTMLページに 'questionsCtrl.js'をインポートしましたか? – Mistalis

+0

はい、jsファイルが正しくインクルードされています。 –

答えて

3

.controller("questionsCtrl", questionsCtrl); 
          ^^^^^^^^^^^^^  : Function reference, not a string 
controller()

への最初のパラメータは、コントローラの名前であり、第二のマッピングです。


以下のmin-safe構文を使用することをお勧めします。コントローラ機能に

.controller('questionsCtrl', ['$scope', questionsCtrl]); 

function questionsCtrl($scope) { 
    console.log('In questionsCtrl'); 
} 
関連する問題