私Utils
は非常に重いサービスを持っています。特定のユーザー アクションで定義されている関数の一部を使用したい。このサービスは重いので、(ユーザーの操作で)遅延してインスタンス化したいと思います。
どうすればこれを達成できますか?
サービス
module.service('Utils', function (dep1, dep2) {
this.method1 = function () {
// do something
}
// other methods
});
コントローラ
module.controller('AppCtrl', function ($scope) {
// I don't want to inject Utils as a dependency.
$scope.processUserAction = function () {
// If the service is not instantiated
// instantiate it and trigger the methods defined in it.
}
});
マークアップ
<div data-ng-controller="AppCtrl">
<button data-ng-click="processUserAction()"> Click Me </button>
</div>