2

私は angularJS の学習を開始しており、yeoman が非常に便利であることがわかりました。しかし、yeoman によって生成されたコントローラー/サービス/モデルは、後で縮小するのに適していません。生成されたテンプレート(この場合はサービス)から見えるもののために、サービスを暗黙的に注入する必要があるためです。

ただし、後で縮小したい場合は、$inject を使用して明示的に注入することをお勧めします。

だから私の質問は:私が理解していることは正しいですか?そうでない場合、yeoman から生成されたテンプレートを挿入する正しい方法は何ですか。

それ以外の場合、後で縮小したい場合は、現在、yeoman から生成されたテンプレートを使用しないでください。

ありがとう

4

2 に答える 2

5

yeoman は、サービスを生成するときにこのようなものを提供します

testApp.factory('Thing', function(dep1, dep2) {
  return {/*...*/};
});

これは、コードが縮小されている場合に問題になります。縮小のプロセスは関数パラメーターを短縮し、angular はそれらを使用して注入する依存関係を推測するためです。

依存関係を注入するには、次のようなインライン注釈をお勧めします

testApp.factory('Thing', ['dep1', 'dep2', function(dep1, dep2) {
  return {/*...*/};
}]);

2 番目の引数は、適切な依存関係の名前をリストする配列であり、その最後の項目は、そのような依存関係が注入される関数であることに注意してください。


--minsafe編集: Yeoman の Angular ジェネレーターは、@Ramiro で示されているように、フラグを使用して JavaScript と CoffeeScript コードの両方の縮小をサポートするようになりました

于 2012-12-07T23:37:41.717 に答える
3

--minsafeを使用してYeomanAngularジェネレーターを使用できます。次に例を示します。

yo angular:controller user --minsafe

ここで他のオプションを確認してください: https ://npmjs.org/package/generator-angular

編集:これに関するフォローアップ。yeomanにはngminアプリが付属しているため、-minsafeフラグを使用する必要がなくなりました。このアプリは、該当するすべてのコードを自動的に最小化可能に変換してから最小化します:)

于 2013-02-26T00:09:30.540 に答える