1

次のビューコードがあるとしましょう:

<button ng-click="login()">Login</button>

ビューからコントローラーのログイン メソッドにコールバックを渡したい場合、どのようにすればよいでしょうか?

私は次のようなことをしたい:

<button ng-click="login( function() { 
                           $('#loginDialog').modal('hide'); 
                         } )">Log in</button>

しかし、角度は ng-click でそのコードを解析しないため、機能しません。

私がやりたいことは、コントローラーから DOM 操作を分離し、コントローラーが呼び出すことができるコールバックにすることです。したがって、コントローラーをよりテストしやすくします。

angularのダイアログサービスがあることは知っていますが、ユースケースがダイアログではなく、他のDOMを変更するものであると仮定しましょう。

サービス インジェクションに頼って、すべてのコールバックをサービスに登録し、そのサービスをコントローラーにインジェクトする必要がありますか? ここでは、コンストラクター注入ではなく、メソッド注入として注入したいと思います。

それで、私が上で説明したようなことをする方法はありますか?

4

2 に答える 2

0

angularでは、DOM操作を行うための推奨される方法は、ディレクティブng-showを使用することです...または、またはのようなディレクティブでビューロジックをバインドしますng-hide

モーダル ウィンドウをラップするディレクティブを作成するか、angular ui ブートストラップの $dialog サービスを使用するだけです。これは優れたサービスです。

于 2013-07-05T08:21:20.790 に答える