2016-04-09 8 views
1

私はAngular JSを初めて使用しています。コントローラーの機能を理解して、その中で深い知識を得ることを試みています。Angular JSのコントローラー機能を理解できません

次のコードスニペットが表示されました。

var App = angular.module('clientApp', ['ngResource', 'App.filters']); 
App.controller('ClientCtrl', ['$scope',function ($scope) { 

    }]); 

私が書く場合、それは作るん重要な何か違い:

var App = angular.module('clientApp', ['ngResource', 'App.filters']); 
App.controller('ClientCtrl', function ($scope) { 

    }); 

私の理解: 私は角括弧内に書かれた何かがその特定のモジュールまたはcontroller.Howeverの依存であることを理解して、私は

  "['$scope',function($scope)" 

代わりの

を書いた理由を理解couldnot
App.controller(controllername,function($scope){ 

    }); 

ご迷惑をおかけして申し訳ありません。

+0

あなたはそうする必要はありません。実際には、角度コードをスキャン/読み取りするのがずっと難しくなると思います。私はlibsや他のブラックボックス(分)を使用して気にしないが、私は(うまくいけば)小さいアプリケーションファイルは、起動時の処理が遅くなるとは思わない... – dandavis

+0

あなたは私の答えを試しましたか? – mdarmanin

答えて

1

AngularJSコードを縮小することができます。 AngularJSはパラメータ名を使用して、コントローラ関数に値を注入します。 JavaScript minificationプロセスでは、これらのパラメータの名前が短い文字列に変更されます。文字列配列を持つ関数にどのパラメータを挿入するかを指定することで、AngularJSはパラメータの名前を変更したときでも正しい値を挿入できます。

1

それは実際にJohn Papa Style Guideによると、このように記述する必要があります。

まず我々が作成し、「app」と呼ばれるmodule名前を付けます。 「SomeController」と呼ばれるcontrollerも作成します。

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

今、私たちは、私たちは、コントローラ

SomeController.$inject = ['dataservice', 'logger']; 

に必要依存関係は今、私たちは、コントローラ用のcorresposnding関数を作成注入します。依存関係がどのように含まれているかに注目してください。

関連する問題