さまざまなコントローラ間でどのように共有メソッドがあるのか理解しています。たとえば、http://fdietz.github.io/recipes-with-angular-js/controllers/sharing-code-between-controllers-using-services.htmlです。しかし、必ずしもすべてのコントローラ内でメソッドを宣言しなくてもメソッドを共有できるかどうかは疑問でした。だから、代わりに角度コントローラ内の共有メソッド
...
var app = angular.module("MyApp", []);
app.factory("UserService", function() {
var users = ["Peter", "Daniel", "Nina"];
return {
all: function() {
return users;
},
first: function() {
return users[0];
}
};
});
app.controller("MyCtrl", function($scope, UserService) {
$scope.users = UserService.all();
});
app.controller("AnotherCtrl", function($scope, UserService) {
$scope.firstUser = UserService.first();
});
...文$scope.users = UserService.all();
と$scope.users = UserService.all();
せずに行うことが可能であるが、それでもビューからの使用が可能だろうか?それ以外の場合、10個の異なるコントローラーがある場合は、同じステートメントを10回繰り返す必要があります。
ビューコントローラ内のデータを探しますので、コントローラ内のデータを取得する場合はコントローラのデータを取得し、コントローラ内のデータを取得した場合はそれを表示し、それ以外の場合は親コントローラ内のデータを探します。一度だけ呼び出されるものは実行中にrootscopeに割り当てられますが、厳密な角度練習に従うとrootscopeは好ましくありません –