我对AngularJS很新,并试图考虑Angular方式
现在我正在开发一个具有不同功能的应用程序,这些功能在名为FeatureRegistry
的角度服务中注册。从那里他们被采取并插入FeatureSelectionController
的侧边栏。通过单击某个功能,应该调用相应功能的startFeature()
功能,然后将该功能添加到主视图中(但是应该在哪里进行DOM操作?)。
所以有我的问题。向DOM添加指令的最佳方式(角度方式)是什么,我不一定要使用jQuery来执行此操作(并且还希望限制$ compile,$ watch等的使用)。
mainView中的指令可以具有独立的范围,因为这些功能执行彼此独立的操作(它们共享的数据封装在角度服务中)。
插入指令的角度方式是什么?
我一直认为DOM操作只应该发生在指令中,但是在文档和其他问题中我都没有找到方法。
答案 0 :(得分:3)
这是一个快速演示:http://plnkr.co/edit/eZTtRVTPb7k9kgS8woKh?p=preview
我不一定在这里看到指令的需要......除非列表中的功能,最大化功能和最小化功能之间有很多共同的功能。
如果你确实在三个列表之间有很多常用功能,你可以这样做:
<feature ng-repeat="f in registry.all()" model="f" state="list">
<feature ng-repeat="f in registry.maximized()" model="f" state="open">
<feature ng-repeat="f in registry.minimized()" model="f" state="minimized">
然后在您的指令模板中,您可以拥有常用功能,然后根据使用ng-switch
或ng-show
的状态确定要使用的内容。
您是否需要帮助编写实际指令?