将虚拟键盘创建为AngularJs模块?

时间:2014-04-16 12:04:41

标签: javascript angularjs keyboard angularjs-module

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

1 个答案:

答案 0 :(得分:2)

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

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

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

  • 显示键盘;
  • 隐藏键盘;
  • 做其他键盘工作。

然后必须在每个可以使用虚拟键盘的控制器内注入服务,并将所有textarea绑定到它(如果你的应用已经完成,那可能是烦人的部分)。

注意:我创建的<div>仅包含<virtual-keyboard>作为示例,以避免控制器冲突,但可能有更好的解决方案;还要向父ng-if添加<div>,您可以在指令中执行显示/隐藏检查。