angular.js - angularjs 依存関係注入の記述の問題
我想大声告诉你
我想大声告诉你 2017-05-15 16:56:43
0
4
592

本にはインジェクションを記述する 2 つの方法があります。
app.controller('PhoneListCtrl', ['$scope', '$http', function ($scope, $http)];
app. controller( 'PhoneListCtrl', function ($scope,$http)];
これら 2 つの違いがわかりません! ?

我想大声告诉你
我想大声告诉你

全員に返信(4)
我想大声告诉你

まずコードをフォーマットします:

ディスプレイインジェクション、コードが長すぎて読みにくいですが、コード圧縮にはエラーはありません

リーリー

暗黙的な注入は簡単に記述できますが、変数名が短くなり、依存関係の注入はそのサービスの名前に基づいているため、js を圧縮するとエラーが発生します

リーリー

$inject メソッドをお勧めします。JohnPapa の Angular Style Guide を参照してください

リーリー

さらに、gulp と grunt のどちらを使用する場合でも、依存関係の挿入に役立つプラグインがあるため、コードの圧縮について心配する必要はありません。 ng-annotate は、依存関係の注入を追加するのに役立ちます。

例を挙げてください

リーリー
いいねを押す +0
伊谢尔伦

記事を引用して直接答えます
元のアドレス
依存性注入はAngularJSの最良のパターンの1つです。これによりテストが容易になり、依存するオブジェクトがより明確になります。 AngularJS は、インジェクションに関しては非常に柔軟です。最も簡単な方法は、モジュールの関数に依存関係名を渡すだけです:

リーリー

ここで、MainCtrl が $scope と $timeout に依存していることは明らかです。
本番環境に移行してコードを縮小する準備が整うまで。 UglifyJS を使用すると、上記の例は次のようになります:

リーリー

それでは、AngularJS は MainCtrl が何に依存しているかをどのようにして知るのでしょうか? AngularJS は非常に単純なソリューションを提供します。依存関係を文字列の配列として渡し、配列の最後の要素はすべての依存関係をパラメーターとして受け取る関数です。

リーリー

次に、AngularJS は圧縮コード内の依存関係を見つける方法も知ることができます:

リーリー
いいねを押す +0
小葫芦

前者は表示噴射、後者は自動噴射です。違いはありません。
しかし、最も推奨されるのは inject 関数の注入です。また、最初の書き方では、表示注入後の順序は関数パラメータの順序と一致する必要があることに注意してください。

いいねを押す +0
迷茫

お二人ともありがとうございました!教訓を教えてもらった

いいねを押す +0
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート