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