3

AngularJs アプリがあり、仮想キーボードを作成する必要があります。キーボードは別のモジュールにする必要があります。私の問題は、モジュールを適切に構成する方法がわからないことですか? ディレクティブ、またはサービスなどとして実装する必要がありますか? テキストエリアがクリックされるたびに仮想キーボードを表示し、それ以外の場合は非表示にします。したがって、このモジュールの構造化を開始する方法を教えてください。ロジックはどこに実装する必要がありますか? どこの景色?

4

1 に答える 1

2

面白い!私はそのようなことをします:

<div ng-view></div>
<div ng-controller="virtualKeyboardController()">
  <virtual-keyboard></virtual-keyboard>
</div>

<virtual-keyboard>ディレクティブは、要素を適切な HTML に置き換えます (ディレクティブの代わりに a を使用することもできます。ng-include個人的には、ここではディレクティブの方が優れていると思います)。次に、virtualKeyboardControllerは次の方法を提供するカスタム サービスを使用します。

  • キーボードを表示します。
  • キーボードを隠します。
  • 他のキーボード操作を行います。

次に、仮想キーボードを使用してすべての をバインドできるすべてのコントローラー内にサービスを挿入する必要がありtextareaます (アプリが既に完成している場合、これはおそらく厄介な部分です)。

注:コントローラーの競合を避けるために、例としてのみ<div>を含むを作成しましたが、より良い解決策があるかもしれません。また、親にを<virtual-keyboard>追加すると、ディレクティブの表示/非表示チェックアウトを実行できます。ng-if<div>

于 2014-04-16T12:23:13.277 に答える