我对AngularJS很新,并且试图考虑Angular方式.
现在我正在开发一个具有不同功能的应用程序,这些功能在名为FeatureRegistry的角度服务中注册.从那里开始它们并从FeatureSelectionController插入侧边栏.通过单击某个功能,应调用相应功能的startFeature()函数,然后将该功能添加到主视图中(但应该在哪里进行DOM操作?).
现在我正在开发一个具有不同功能的应用程序,这些功能在名为FeatureRegistry的角度服务中注册.从那里开始它们并从FeatureSelectionController插入侧边栏.通过单击某个功能,应调用相应功能的startFeature()函数,然后将该功能添加到主视图中(但应该在哪里进行DOM操作?).
所以有我的问题.向DOM添加指令的最佳方式(角度方式)是什么,我不一定要使用jQuery来执行此操作(并且还希望限制$compile,$watch等的使用).
mainView中的指令可以具有隔离的范围,因为这些功能执行彼此独立的操作(它们共享的数据封装在角度服务中).
插入指令的角度方式是什么?
我总是读到DOM操作应该只在指令中发生,但在文档中以及在其他问题中我没有找到实现它的方法.
这是一个快速演示:
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的状态确定要使用的功能.
你在撰写实际指令时需要帮助吗?