1. ホーム
  2. javascript

[解決済み] AngularJS エラー: '引数 'FirstCtrl' は関数ではありません、未定義になりました'.

2023-01-23 05:19:40

質問

同じ質問がここで何度かされているのに気づきました。私はそれを解決しようとしましたが、何も役に立ちません。

私はこのチュートリアルとeggheadのビデオに従っています。

しかし、コントローラとコントローラ間のデータ共有のセクションになると、動作させることができません。

Chromeで実行すると、コンソールにこのようなエラーが表示されます。

'引数 'FirstCtrl' は関数ではありません、未定義になりました'.

何が間違っているのか本当にわかりません。コードはチュートリアルのものと同じです。

HTML

<!DOCTYPE html>
<html ng-app>
 <head>
    <title>AngularJS Tutorials: Controllers</title>
    <link rel="stylesheet" href="mystyle.css">
    <script src="http://code.angularjs.org/1.2.0-rc.2/angular.min.js"></script>
 </head>
 <body>
    <div ng-app="">
       <div ng-controller="FirstCtrl">   
           <h1> {{data.message + " world"}}</h1>

           <div class="{{data.message}}">
               Wrap me in a foundation component
           </div>
       </div>
    </div>
    <script type="text/javascript" src="main.js"></script>
 </body>
</html> 

メイン.js

function FirstCtrl($scope){
   $scope.data = { message: "Hello" };
} 

どのように解決するのですか?

2つの無名 ng-app ディレクティブがあります。

divの中にあるものをなくす。

更新する

違うアプローチでやってみよう。

jsファイルでモジュールを定義し、そのモジュールに ng-app ディレクティブを割り当てます。その後、コントローラを単純な関数としてではなく、ngコンポーネントのように定義します。

<div ng-app="myAppName">  
<!-- or what's the root node of your angular app -->

とjsの部分です。

angular.module('myAppName', [])
    .controller('FirstCtrl', function($scope) {
         $scope.data = {message: 'Hello'};
    });

このようなオンラインデモがあります。 http://jsfiddle.net/FssbL/1/