2014-04-16 35 views
3

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

回答

2

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

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

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

  • 显示键盘;
  • 隐藏键盘;
  • 做其他键盘的东西。

服务必须然后每个控制器,可以使用虚拟键盘和绑定所有的textarea s到这里面被注入(这可能是恼人的一部分,如果你的应用程序已经完成)。

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

+0

感谢您的回复。我想将Chrome虚拟键盘制作成Angularjs,并且很难组织这些文件.https://github.com/xontab/Chrome-Virtual-Keyboard – annomiss