5

我对 AngularJS 相当陌生,并试图以 Angular 的方式思考。
现在,我正在开发一个具有不同功能的应用程序,这些功能注册在一个名为FeatureRegistry. 从那里将它们取出并插入到侧边栏中FeatureSelectionController。通过单击一个特性,startFeature()应该调用相应特性的功能,然后将该特性添加到主视图中(但是这种 DOM 操作应该发生在哪里?)。

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

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

这是一张图片

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

我总是读到 DOM 操作应该只发生在指令中,但在文档和其他问题中我没有找到这样做的方法。

4

1 回答 1

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

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

于 2013-03-19T16:09:36.750 回答