質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
AngularJS

AngularJSはオープンソースのJavaScriptフレームワークです。ブラウザ上で動作するウェブアプリケーションの開発にMVCアーキテクチャを取り入れることを目的としています。

Q&A

解決済

1回答

6178閲覧

AngularJsで2つcontrollerがあるとエラー

退会済みユーザー

退会済みユーザー

総合スコア0

AngularJS

AngularJSはオープンソースのJavaScriptフレームワークです。ブラウザ上で動作するウェブアプリケーションの開発にMVCアーキテクチャを取り入れることを目的としています。

0グッド

0クリップ

投稿2015/03/06 09:37

編集2015/03/06 09:40

「AngularJSリファレンス」という書籍を読みながら学習です。
下記のようなコードでそれぞれ別々にコードを書くと問題なく動作するのですが、同時に記載するとエラーが発生します。

chromeのターミナルから得られるメッセージは下記のとおりです。
"Argument 'myController2' is not a function, got undefined"

angularの理解がまだ乏しい段階ですが、このようなエラーが発生してしまう原因、また対応方法をご教授いただけると嬉しいです。

両方共にng-controller="myController"にするとエラーは出ません。クリックの方は動作しますが、マウスダウンは動作しません。

よろしくお願いします。

lang

1<div ng-controller="myController2"> 2<p ng-mousedown="mousedown()" ng-style="myStyle">マウスダウンで文字が大きくなる</p> 3<script> 4 angular.module('app',[]).controller('myController2',['$scope',function($scope){ 5 $scope.mousedown = function(){ 6 $scope.myStyle = { fontSize:'x-large'}; 7 } 8 }]); 9</script> 10</div> 11 12<div ng-controller="myController"> 13<input type="button" value="クリックで+1" ng-click="count=count+1"> 14<input type="button" value="クリックで*2" ng-click="click()"> 15<p>{{count}}</p> 16<script> 17 angular.module('app',[]).controller('myController',['$scope',function($scope){ 18 $scope.count =0;//countの初期化 19 $scope.click = function(){ 20 $scope.count = $scope.count *2; 21 } 22 }]) 23</script> 24</div>

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

ベストアンサー

lang

1angular.module('app',[]).controller('myController2', ... ); 2angular.module('app',[]).controller('myController', ... );

1個目の app モジュールが2個目の app モジュールで上書きされてしまうためです。

次のように、第2引数が配列である angular.module を1回だけ呼んで、その後は第2引数を省略するようにすれば大丈夫です。

lang

1angular.module('app',[]); 2angular.module('app').controller('myController2', ... ); 3angular.module('app').controller('myController', ... );

投稿2015/03/06 17:04

ngyuki

総合スコア4514

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

退会済みユーザー

退会済みユーザー

2015/03/07 01:57

エラーがなくなりました。ありがとうございます。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問