2016-04-15 23 views
1

私はMEANスタックでAngularを使用していますが、Angularを統合しようとしています。ここでエラー:[ng:areq]引数 'CompanyCtrl'が関数ではありません。定義されていません。

Uncaught SyntaxError: Unexpected token < Error: [ng:areq] Argument 'CompanyCtrl' is not a function, got undefined

は、私のファイルは、以下のとおりです。

index.htmlを

<!DOCTYPE html> 
<html ng-app="dashboard"> 
    <head> 
    <meta charset="utf-8"> 
    <title>TappShops - Dashboard</title> 
    <base href="/"> 
    <!-- inject:css --> 
    <!-- endinject --> 

    <script src="../lib/angular/angular.js"></script> 
    <script src="../lib/angular-route/angular-route.js"></script> 
    <script src="../lib/angular-resource/angular-resource.js"></script> 
    <script src="../app/js/app.js"></script> 

    <!-- inject:js --> 
    <script src="features/company/company.controller.js"></script> 
    <!-- endinject --> 
    </head> 

    <body> 
    <div ng-controller="CompanyCtrl as company"> 
     {{company.test}} 
    </div> 
    </body> 
</html> 

app.js

(function() { 
    'use strict'; 

    angular 
    .module('dashboard', [ 
     'ngRoute', 
     'ngResource' 
    ]) 
})(); 

company.controller.js

(function() { 
    'use strict'; 

    angular 
    .module('dashboard') 
    .controller('CompanyCtrl', CompanyCtrl); 

    CompanyCtrl.$inject = [ 
    ]; 

    function CompanyCtrl() { 
    var vm = this; 

    vm.test = "Hello World!"; 
    }; 

})(); 

ご協力いただきありがとうございます。 :)

+0

あなたは、スタック内の他のエラーはこの1つ前にありません特定のか?そのすべてが有効と思われるからです。 – Lex

+0

'company.controller.js'へのパスは正しいですか?あなたの他のすべての道が持っている主要な '../'が欠けていることがわかります。 – Lex

+0

それはポイントの横にあるのですが、なぜmodule.controllerで動作するのですか?それは時代遅れの習慣と見なされます(悪い習慣を言う人もいます)。代わりにディレクティブ/コンポーネントを使用します。それぞれに独自のコントローラがあります。 – yccteam

答えて

2

問題は私のコントローラへのパスだった。

は私が持っていた:

<script src="features/company/company.controller.js"></script> 

それがされている必要がありますとき:

<script src="app/features/company/company.controller.js"></script> 
関連する問題