2016-12-31 10 views
0

角度1.5以下の初心者でエラーに遭遇しています。私はいくつかのオンラインコースで練習していて、すべてが角度1の異なるバージョンを使用しています。私はJohn Papaのスタイルガイドに近く、特にIIFEとControllerを使用するようにしています。質問はこれが常に賢明ですかこの種のコードが実行を中断します状況がある生命維持の角度コントローラーのIIFE

(function() { 

      angular 
       .module('app') 
       .controller('MyCtrl', MyCtrl); 

      function MyCtrl() { 
       var vm = this; 
       vm.title = 'hello world'; 
     })(); 

内の別々のファイル内のコントローラをラップについてですか?

+0

IFFEではなくIIFE(Immediately Invoked Function Expression)です。 – 4castle

+2

'MyCtrl()'の '}'閉じ括弧がありません。 –

+0

それぞれにIIFEを使用する理由はありません。どのような特定のエラーがスローされていますか? – charlietfl

答えて

2

IIFEを使用する主な理由は、グローバルスコープを汚染しないことです。

コードがIIFEでラップされていない場合、親スコープには変数MyCtrlが含まれます。自分で関数を呼び出すことは決してないので、私はMyCtrlを非公開にします。

「このすべてのコードがプライベートであり、この範囲外のものは、それを呼び出すか、使用するMyCtrlにアクセスすることはできません、ポイントは何?私も何をしているのですか?場合は、」今、あなたの質問は、かもしれません

「実行を中断しない」理由は、のみを必要とし、そこから角度を取るようにしているためです。あなたのコードを読めば

、何が本当にやっていることは言っている:

「ねえ、角度『アプリ』と はそれをどのコントローラを与えると呼ばれる定義済みモジュールを取ります。私はMyCtrlと定義しました。 コントローラー'MyCtrl'

これですべてのコードを実行する必要があります。あなたはAngularに特定のモジュールのコントローラとして使う関数を与えましたが、あなたのコードの他の部分はそれについて知るべきではありません。

+1

時には良い記述的な一般人の用語の答えは、技術用語がたくさんなくても必要なものです+1 – charlietfl

+0

ありがとうございます。短い「杜」の答えにいつも感謝しています。 :) –

関連する問題