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