2017-09-28 10 views
2

私は角度のあるJSに初心者です。私は2つの異なるタイプのコントローラ宣言に直面していましたが、私はそのシーンの影響を理解できません。以下の2つのコントローラーの違い

vmyApp.controller('GreetingController', ['$scope', function($scope) { 
$scope.greeting = 'Hola!'; 
}]); 

私は、2つのパラメータ1つを '$ scope'とし、その他の機能をコントローラの依存関係として使用していることを理解しました。

他の断片としては、以下:ここ

vmyApp.controller('GreetingController', function($scope) { 
    $scope.greeting = 'Hola!'; 
}); 

任意依存することなく、コントローラに第2パラメータとして直接機能します。

私にその影響の違いを教えてください。

+0

説明があなたに役立った場合は、私の回答を受け入れられた回答としてマークしてください:) –

答えて

3

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

1

AngularJSアプリケーションを実行しても実際には何も変わりません。

しかし、タスクランナー(Gulp、Gruntなど)でコンパイルしようとすると、$ scopeが置き換えられるため、2番目のアプリケーションでアプリケーションが中断されます。

文字列がminifおよびuglifyプロセスで置き換えられないため、従属性を文字列として注入する必要があります。

This guidestyle理由を説明してください。

関連する問題