本にはインジェクションを記述する 2 つの方法があります。app.controller('PhoneListCtrl', ['$scope', '$http', function ($scope, $http)];app. controller( 'PhoneListCtrl', function ($scope,$http)];これら 2 つの違いがわかりません! ?
まずコードをフォーマットします:
ディスプレイインジェクション、コードが長すぎて読みにくいですが、コード圧縮にはエラーはありません
暗黙的な注入は簡単に記述できますが、変数名が短くなり、依存関係の注入はそのサービスの名前に基づいているため、js を圧縮するとエラーが発生します
$inject メソッドをお勧めします。JohnPapa の Angular Style Guide を参照してください
さらに、gulp と grunt のどちらを使用する場合でも、依存関係の挿入に役立つプラグインがあるため、コードの圧縮について心配する必要はありません。 ng-annotate は、依存関係の注入を追加するのに役立ちます。
例を挙げてください
記事を引用して直接答えます元のアドレス依存性注入はAngularJSの最良のパターンの1つです。これによりテストが容易になり、依存するオブジェクトがより明確になります。 AngularJS は、インジェクションに関しては非常に柔軟です。最も簡単な方法は、モジュールの関数に依存関係名を渡すだけです:
ここで、MainCtrl が $scope と $timeout に依存していることは明らかです。 本番環境に移行してコードを縮小する準備が整うまで。 UglifyJS を使用すると、上記の例は次のようになります:
それでは、AngularJS は MainCtrl が何に依存しているかをどのようにして知るのでしょうか? AngularJS は非常に単純なソリューションを提供します。依存関係を文字列の配列として渡し、配列の最後の要素はすべての依存関係をパラメーターとして受け取る関数です。
次に、AngularJS は圧縮コード内の依存関係を見つける方法も知ることができます:
前者は表示噴射、後者は自動噴射です。違いはありません。 しかし、最も推奨されるのは inject 関数の注入です。また、最初の書き方では、表示注入後の順序は関数パラメータの順序と一致する必要があることに注意してください。
お二人ともありがとうございました!教訓を教えてもらった
まずコードをフォーマットします:
ディスプレイインジェクション、コードが長すぎて読みにくいですが、コード圧縮にはエラーはありません
リーリー暗黙的な注入は簡単に記述できますが、変数名が短くなり、依存関係の注入はそのサービスの名前に基づいているため、js を圧縮するとエラーが発生します
リーリー$inject メソッドをお勧めします。JohnPapa の Angular Style Guide を参照してください
リーリーさらに、gulp と grunt のどちらを使用する場合でも、依存関係の挿入に役立つプラグインがあるため、コードの圧縮について心配する必要はありません。 ng-annotate は、依存関係の注入を追加するのに役立ちます。
例を挙げてください
リーリー記事を引用して直接答えます
リーリー元のアドレス
依存性注入はAngularJSの最良のパターンの1つです。これによりテストが容易になり、依存するオブジェクトがより明確になります。 AngularJS は、インジェクションに関しては非常に柔軟です。最も簡単な方法は、モジュールの関数に依存関係名を渡すだけです:
ここで、MainCtrl が $scope と $timeout に依存していることは明らかです。
リーリー本番環境に移行してコードを縮小する準備が整うまで。 UglifyJS を使用すると、上記の例は次のようになります:
それでは、AngularJS は MainCtrl が何に依存しているかをどのようにして知るのでしょうか? AngularJS は非常に単純なソリューションを提供します。依存関係を文字列の配列として渡し、配列の最後の要素はすべての依存関係をパラメーターとして受け取る関数です。
リーリー次に、AngularJS は圧縮コード内の依存関係を見つける方法も知ることができます:
リーリー前者は表示噴射、後者は自動噴射です。違いはありません。
しかし、最も推奨されるのは inject 関数の注入です。また、最初の書き方では、表示注入後の順序は関数パラメータの順序と一致する必要があることに注意してください。
お二人ともありがとうございました!教訓を教えてもらった