3

我有一个 AngularJs 应用程序,我需要创建一个虚拟键盘。键盘应该是一个单独的模块。我的问题是我不确定如何正确构建我的模块?它应该作为指令,还是服务等来实现?我希望我的虚拟键盘在单击文本区域时显示,否则隐藏。所以我需要帮助如何开始构建这个模块。逻辑应该在哪里实现?哪里的景色?

4

1 回答 1

2

有趣的!我会做这样的事情:

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

<virtual-keyboard>指令将用正确的 HTML 替换元素(您也可以使用 ang-include代替指令;我个人认为该指令是更好的方法)。然后virtualKeyboardController将使用自定义服务,为您提供一些方法:

  • 显示键盘;
  • 隐藏键盘;
  • 做其他键盘的事情。

然后必须将服务注入每个可以使用虚拟键盘并将所有textareas 绑定到它的控制器中(如果您的应用程序已经完成,这可能是令人讨厌的部分)。

注意:我创建了一个<div>包含<virtual-keyboard>唯一的示例,以避免控制器冲突,但可能有更好的解决方案;还向ng-if父级添加一个,<div>您可以对指令进行显示/隐藏检查。

于 2014-04-16T12:23:13.277 回答