次のビューコードがあるとしましょう:
<button ng-click="login()">Login</button>
ビューからコントローラーのログイン メソッドにコールバックを渡したい場合、どのようにすればよいでしょうか?
私は次のようなことをしたい:
<button ng-click="login( function() {
$('#loginDialog').modal('hide');
} )">Log in</button>
しかし、角度は ng-click でそのコードを解析しないため、機能しません。
私がやりたいことは、コントローラーから DOM 操作を分離し、コントローラーが呼び出すことができるコールバックにすることです。したがって、コントローラーをよりテストしやすくします。
angularのダイアログサービスがあることは知っていますが、ユースケースがダイアログではなく、他のDOMを変更するものであると仮定しましょう。
サービス インジェクションに頼って、すべてのコールバックをサービスに登録し、そのサービスをコントローラーにインジェクトする必要がありますか? ここでは、コンストラクター注入ではなく、メソッド注入として注入したいと思います。
それで、私が上で説明したようなことをする方法はありますか?