さらに調査すると、この記事で説明されているように、必要な結果を達成するための最良の方法は、状態構成で解決を使用することであることがわかりました: https://scotch.io/tutorials/making-skinny-angularjs-controllers
編集:少し説明してみます。私が達成しようとしているのは、コントローラーにアクセスするたびにデータの膨大なサブセットをプリロードすることを避けるために、特定のアプリケーションの状態をコントローラーのメソッドにルーティングすることです。私のui-routerでこの状況にあるとしましょう
.state('view-profile', {
url: '/view-profile',
templateUrl: 'components/profile/profile.html',
controller: 'ProfileController'
})
[...]
.state('edit-profile', {
url: '/edit-profile',
templateUrl: 'components/profile/edit-profile.html',
controller: 'ProfileController'
})
ProfileController は、編集/表示に関連する必要のない多くのことを実行できる可能性があるため、これらの URL に移動したときに呼び出される特定のコントローラー メソッドを設定したいと考えています。他の MVC フレームワークでは、ルートを特定のコントローラー メソッドに関連付けることができるため、
route: /edit-profile -> resolvesAs: ProfileController.editProfile(args)
残念ながら、少なくとも ui-router を使用しない限り、AngularJS 1.4 でこれを行う方法は実際にはありません。しかし幸いなことresolve
に、ui-router 構成で属性を使用して、特定のルートの無用なデータをプリロードすることを避けることができます。