2017-04-01 10 views
0

ここで私がここで把握しようとしている問題はちょっと厄介なことかもしれません。私は最善を尽くし、私が何をしているのかを説明します。angular.moduleファイル内のcontroller.jsファイルを "インポート"する方法

私は

angular.module('app', [ 
'ngRoute' 

]を宣言した主main.js・モジュール・ファイルを持っている)

今は

が含まhome.controller.jsとしてコントローラ用separrateファイルを持っています
angular 
.module('app')  
.controller('HomeController', ['$scope', function($scope) { 
}]); 

main.jsファイルにhome.controller.jsファイルを含める方法はありますか?htmlにスクリプトsrcを入れる必要はありませんか?私はimport 'path/home.conntroller.jsにしようとしましたが、このエラーが発生します

モジュール 'app'は利用できません!モジュール名のスペルが間違っているか、モジュール名を読み込めませんでした。

ヘルプを評価してください。

答えて

0

このタスクを達成するには、ライブラリを使用する必要があります。角度2のtypecriptではモジュールをインポートすることができますが、角度1では、ライブラリを使用してモジュールを遅延ロードする必要があります。

1つはrequireJsです。 RequireJSは、JavaScriptの依存関係を遅延ロードするのに役立つJavaScriptライブラリです。

もう1つはocLazyLoadです。ocLazyLoadでは、ルーティング中にresolve内にjsファイルをロードできます。ここ

ocLazyLoad

config(function($routeProvider) { 
    $routeProvider.when('/', { 
     template: require('./modules/home/home'), 
     controller: 'HomeController', 
     controllerAs: '$home', 
     resolve: { 
      loadMyCtrl: ['$ocLazyLoad', function($ocLazyLoad) { 
       return $ocLazyLoad.load('ur_controller.js'); 
      }] 
     } 
    }); 
}) 
+0

私もこれを私のmain.jsに持っています '.config(function($ routeProvider){ $ routeProvider .when( '/'、{ テンプレート:require( './ modules/home/home')、 コントローラ: 'HomeController'、 controllerAs: '$ home' }); }) ' コントローラで' require( 'path/home.controller.js'); 'と書くことができるかもしれないと思っていましたが、まだ動かないのです。 –

+0

@ requireは、jsライブラリを必ず追加してください。ドキュメントに従ってください –

1

のためのサンプルは必ずmain.jsを作るある例えば... home.controller.js前に、あなたのHTMLファイルに含まれています:

<script src="main.js"></script> 
 
<script src="home.controller.js"></script>

関連する問題