検索

ホームページ  >  に質問  >  本文

angular.js - angularjs 依赖注入的写法问题

书中关于注入写法有两种
app.controller('PhoneListCtrl', ['$scope', '$http', function($scope,$http)];
app.controller('PhoneListCtrl', function($scope,$http)];
不懂这两种有什么区别呢!!??请教了

我想大声告诉你我想大声告诉你2744日前566

全員に返信(4)返信します

  • 我想大声告诉你

    我想大声告诉你2017-05-15 16:58:43

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

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

    リーリー

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

    リーリー

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

    リーリー

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

    例を挙げてください

    リーリー

    返事
    0
  • 伊谢尔伦

    伊谢尔伦2017-05-15 16:58:43

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

    リーリー

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

    リーリー

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

    リーリー

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

    リーリー

    返事
    0
  • 高洛峰

    高洛峰2017-05-15 16:58:43

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

    返事
    0
  • 迷茫

    迷茫2017-05-15 16:58:43

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

    返事
    0
  • キャンセル返事