2016-06-20 1 views
0

に動作しますが、代わりに別のmodulesを維持する、私は私がアプリケーションに注入しています。このモジュールでmyApp.controllersとしてジェネリックmodule名を使用しています。後で新しいcontrollerを既存のmyApp.controllersに追加していますが、動作しません。angularjs - 事前定義されたモジュールのコントローラを追加することなく、私の<code>app</code>で

ここで何が間違っていますか?

ここ

が私のコードです:

angular.module('myApp.controllers', []); 

var appModules = ['myApp.controllers'] 

var app = angular.module('myApp', [appModules]); 

angular.module('myApp.controllers').controller('mainController', ['$scope', function($scope){ 

    $scope.name = "World"; 

}]) 

Live Demo

答えて

4

あなたが持っている必要があり、次のいずれか

var app = angular.module('myApp', appModules); 

または

var app = angular.module('myApp', ['myApp.controllers']); 

を2番目のパラメータはサップですosed strings(またはを含む変数のarray)の配列になるようにするには、[appModules]とするとarrayをdoubleとし、appModulesarrayとなります。

EDIT:更新plunkr:http://plnkr.co/edit/hQOzV9oPCsEwqU2dUW4c?p=preview

UPDATE:第二の問題について : あなたが二回モジュールを定義しています。

angular.module('myApp.controllers', []) 
.controller('subController', ['$scope', function($scope){ 
    $scope.son = "Adil"; 
}]); 

angular.module('myApp.controllers') 
.controller('subController', ['$scope', function($scope){ 
    $scope.son = "Adil"; 
}]); 

は、これがうまくいくhttp://plnkr.co/edit/xcWdAJuoN3zYKm29nIgY?p=preview

+0

ない作品を、あなたはplunkrを更新することができますか? – user2024080

+0

http://plnkr.co/edit/hQOzV9oPCsEwqU2dUW4c?p=preview – gaurav5430

+0

ここでチェックしても、私は新しいコントローラを追加するときに問題に直面しています(新しい名前を付け加えてください)http://plnkr.co/edit/19yOmDPUu9Dg5TbIVbTU?p = preview – user2024080

0

plunkr更新を参照する必要があります。 var appModulesの代わりにmyappにモジュール名を注入する必要があります。

var app = angular.module('myApp', appModules); 

セカンドミストに

var app = angular.module('myApp', [appModules]); 

を変更:

var appModules = angular.module('myApp.controllers', []); 


var app = angular.module('myApp', [ 'myApp.controllers' ]); 

angular.module('myApp.controllers').controller('mainController', ['$scope', function($scope){ 

$scope.name = "World"; 

}]) 
0

あなたの固定Plunker

まず間違い(あなたはPlunkerを変更しました) AKE:

これはセッターです:angular.module('myApp.controllers', [])

は、これがゲッターです:angular.module('myApp.controllers'

あなたが二回セッターを使用していました。

1つの小さなコメントが問題ではありません。私はあなたが 'myApp.controllers'で何を意味するのか分からないか、あなたは角の権利という概念を得ていませんでした。 modules変数で保持しているものは、実際にはコントローラではなくモジュールです。 ですから、配列にあなたのコントローラを保持したい場合 - あなたがそのようにこれを行うことができます(何らかの理由で私はこれをお勧めしません): Plunker

まだ
+0

OPはすべてのコントローラが登録されているモジュールを作成しようとしているため、その単一のモジュールを使用してすべてのコントローラを登録できます。同様に、サービスと指令のために別々のモジュールを持つことができます。 – gaurav5430

+0

確認していただきありがとうございます。これを取得していない。たぶん私の目には本当に悪い練習だから。 – jowey

+0

これはあなたのコードをモジュール化するための別の方法です。別のモジュールにコントローラを置いたり、別々のサービスを用意したり、別々にフィルターをかけたりします。私はこれを支持するチュートリアルをいくつか見てきました。 – gaurav5430

関連する問題