シードアプリはコントローラーを参照するルートを使用し、コントローラーは次のように定義されます。
function MyCtrl1() {}
MyCtrl1.$inject = [];
インジェクションを示すより良い例(つまり)を探していますか?おそらくHTTPがスコープを取得して更新しますか?
ありがとう。
何が欲しいのか正確にはわかりませんが、もっと複雑な例を示します。
コントローラ:
function MyCtrl1 ( $scope, $http ) {
$http.get( '/some/location' ).success( function ( data ) {
$scope.items = data;
});
}
MyCtrl1.$inject = [ '$http' ];
意見:
<div ng-controller="MyCtrl1">
<ul>
<li ng-repeat="item in items">{{item.name}}</li>
</ul>
</div>
解説:
実際のシナリオでは、$ http呼び出しは独自のサービスで行われ、代わりにコントローラーに注入されます。また、グローバル空間でコントローラーを定義しないことをお勧めします。同じコントローラーを定義するためのより良い方法は次のようになります。
angular.module('myApp', [])
.controller( 'MyCtrl', [ '$http', function MyCtrl1 ( $scope, $http ) {
$http.get( '/some/location' ).success( function ( data ) {
$scope.items = data;
});
}]);
アップデート:
コントローラーはスコープなしでは役に立たず、実際には何もできませんでした。そのため、Angularはすべてのコントローラーに$scopeを自動的に挿入します。他のすべてのサービスは、注入するように要求する必要があります。と配列のMyCtrl1.$inject
構文はどちらも、縮小後も機能を維持するためにのみ必要です。私のコードでサンプルファイルを作成し、その$inject
行を削除しても、引き続き機能します。ただし、Javascriptを縮小すると、変数名が減るので、重要な情報を文字列に入れます。
このチュートリアルのように、チュートリアルを実行するだけでなく、 AngularJSYouTubeチャンネルのいくつかのビデオを視聴することをお勧めします。