15

一部の AngularJS チュートリアルでは、Angular アプリは次のように定義されています。

myApp = angular.module("myApp",[]);

しかし、それなしでもできます。私が見ることができる唯一の違いは、コントローラーを定義するとき、イディオムを使用できないことです:

myApp.controller("myCtrl",function(){ })

しかし、使用する必要があります

function myCtrl (){}

サイト用にアプリを 1 つしか作成しない場合、myApp を明示的に定義することの他の利点はありますか? myApp を定義しない場合、モジュールはどこに接続されますか?

ある場合、Jasmin でのテストで myApp を再作成するにはどうすればよいですか?

4

3 に答える 3

34

(少なくとも) 3 つの方法でコントローラーを定義できます。

  1. コントローラーをグローバル変数として定義します(オブジェクトに保存されwindowます)

    function Ctrl() {}
    

    これは、次のことと同じです。

    window.Ctrl = function () {}
    
  2. モジュールを作成し、返されたインスタンスを使用して新しいコントローラーを作成します。

    var app = angular.module('app', []);
    app.controller('Ctrl', function() {});
    
  3. 2参照を保存せずに、モジュール上にコントローラーを直接作成します ( vars を使用しない場合と同じです)。

    angular.module('app', []);
    angular.module('app').controller('Ctrl', function() {});
    

Angular の観点からは、それらはすべて同じことを行います。それらを混ぜ合わせることもでき、機能します。唯一の違いは、オプションで1はグローバル変数を使用し、オプション23はコントローラーが Angular のプライベート オブジェクト内に格納されることです。

于 2013-02-12T23:13:44.740 に答える
-3

とにかくangular.moduleでアプリを定義する必要があります。myApp.controller と関数 myCtrl は同じです..

于 2013-02-12T17:12:25.917 に答える