在AngularJS中将指令插入HTML?

时间:2013-03-19 15:33:10

标签: angularjs angularjs-directive

我对AngularJS很新,并试图考虑Angular方式 现在我正在开发一个具有不同功能的应用程序,这些功能在名为FeatureRegistry的角度服务中注册。从那里他们被采取并插入FeatureSelectionController的侧边栏。通过单击某个功能,应该调用相应功能的startFeature()功能,然后将该功能添加到主视图中(但是应该在哪里进行DOM操作?)。

所以有我的问题。向DOM添加指令的最佳方式(角度方式)是什么,我不一定要使用jQuery来执行此操作(并且还希望限制$ compile,$ watch等的使用)。

mainView中的指令可以具有独立的范围,因为这些功能执行彼此独立的操作(它们共享的数据封装在角度服务中)。

Here is an image

插入指令的角度方式是什么?

我一直认为DOM操作只应该发生在指令中,但是在文档和其他问题中我都没有找到方法。

1 个答案:

答案 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-switchng-show的状态确定要使用的内容。

您是否需要帮助编写实际指令?