在ng-repeat中使用条件

16 浏览
0 Comments

在ng-repeat中使用条件

我有一个简单的ng-repeat


如果obj.type == "type1",我想使用自定义指令"type1",如果obj.type == "type2",我想使用自定义指令"type2"。有没有聪明的方法来实现这个?

编辑

我将在不同的位置使用这个解决方案,所以我希望将逻辑放在指令中而不是在html中。我在想也许我可以使用一个"parent"指令,根据obj.type来"包含"其中一个指令。你觉得怎么样?

0
0 Comments

在ng-repeat中使用条件的问题是因为需要根据对象的类型来展示不同的模板。在给出的代码中,根据obj.type的不同,使用了ng-if来判断对象类型,并展示对应的模板。然而,这种方式在Angular 1.2中可以使用更高效的ng-switch指令来代替。

根据进一步的评论,可以根据不同的类型使用ng-if="obj instanceof type1"来进行条件判断。

根据提供的链接,也可以通过自定义指令来实现不同的模板展示。

在回答者的建议下,可以在指令中根据obj.type的不同来指定不同的模板,这可能是一个好的方法。

如果在链接函数中根据类型进行判断,可以指定任何你想要的模板。

尽管可以实现这样的方式,但这超出了我的Angular知识范围。不要选择任何答案,也许会有人看到并告诉你如何做。

以上是对"Use a condition in ng-repeat"问题的原因和解决方法的整理。通过使用ng-if、ng-switch或自定义指令,可以根据对象的类型来展示不同的模板。

0
0 Comments

使用ng-repeat时使用条件判断的问题出现的原因是为了避免在HTML中添加过多的div和span标签。解决方法是使用ng-switch指令来实现条件判断。具体代码如下:

这样就可以通过ng-switch指令来判断obj.type的值,并根据不同的值来显示不同的指令。这样就可以避免在HTML中添加过多的div和span标签,使代码更加简洁和易读。

0
0 Comments

使用ng-repeat时,有时候需要根据条件来展示不同的样式或类。解决这个问题的方法是使用ngClass指令。

首先,在ng-repeat的标签内部创建一个

元素,使用ng-class指令来根据条件来设置不同的类名。例如,可以使用obj.type来判断需要应用的类:

在这个示例中,根据对象的type属性来应用不同的类名。

更多关于ngClass指令的信息可以查看AngularJS文档:http://docs.angularjs.org/api/ng.directive:ngClass

如果需要解析数据或类似的操作,可以尝试使用自定义指令来处理特定的情况。

编辑:

对于后面的情况,可以将逻辑放在一个服务中,并在父指令中调用相应的函数。关于如何创建服务的更多信息可以查看AngularJS的开发指南:http://docs.angularjs.org/guide/dev_guide.services.creating_services

如果选择这条路线,可以在我的答案中找到更多的标记。我还展开了如何在父指令中实现相关逻辑。

如果你对我回答的问题感兴趣,我已经回答了。

0