需要一些有关如何为动态视图设置指令的指导

时间:2015-04-09 16:22:10

标签: angularjs angularjs-directive

我正在研究我的第一个角度指令,并且仍然围绕这些概念以及指令的可能性。由于我一直在研究解决这个问题的最佳方法,我无法确定一个解决我想要做的事情的例子,所以我想请求专家提供一些帮助。

我有一组对象,它们是三种类型之一。

我想使用ng-repeat指令迭代这个数组并在页面上显示对象。

每个对象类型都有一个与之关联的不同视图,因为每个对象共享一些属性,但也具有唯一属性。

我想设置一个指令,根据目标类型显示正确的视图。

因此逻辑将起作用如下:

<div ng-repeat="item in dataset">
    <the-smart-directive>item</the-smart-directive>
</div>

一个想法是有一个指令,我根据对象类型确定templateUrl,然后为每个对象都有一个唯一的模板。

另一个想法是拥有一个父指令,然后是另外三个指令(每个对象类型一个),而父指令会插入正确的对象类型指令(这个想法似乎是更好的方法,但我'我不知道如何实际实现这个想法。)

我非常乐意帮助您了解解决此问题的最佳方法以及如何实施。如果你能提供一些很棒的示例代码,让我开始走上正确的道路。

感谢您的帮助!

1 个答案:

答案 0 :(得分:3)

我们使用它的方式是在ng-repeat中使用ng-switch。

<div ng-repeat="item in dataset" ng-switch="item.type">
        <directive-one ng-switch-when="1">
        </directive-one>
        <directive-two ng-switch-when="2">
        </directive-two>
        <directive-three ng-switch-when="3">
        </directive-three>
</div>