Javascript AngularJS-ngRepeat具有多种对象类型
我有一份物品清单。一个项目可以是很多东西,比如说这个列表是这样的:Javascript AngularJS-ngRepeat具有多种对象类型,javascript,dom,polymorphism,angularjs,rendering,Javascript,Dom,Polymorphism,Angularjs,Rendering,我有一份物品清单。一个项目可以是很多东西,比如说这个列表是这样的: [userObject , vehicleObject , userObject , animalObject , animalObject] 现在,我想使用ngRepeat指令呈现列表,该指令将根据对象的类型使用模板(多态呈现)。这能做到吗 可能类似于(ng use是一个假设的指令): {{item.link} {{item.name} 尽管它没有使用ng开关,但它确实解决了@DotNetHaggis指出的没有类
[userObject , vehicleObject , userObject , animalObject , animalObject]
现在,我想使用ngRepeat指令呈现列表,该指令将根据对象的类型使用模板(多态呈现)。这能做到吗
可能类似于(ng use是一个假设的指令):
-
{{item.link}
{{item.name}
-
尽管它没有使用ng开关,但它确实解决了@DotNetHaggis指出的没有类型字段的问题
<div ng-repeat="field in fields">
<div ng-if="field.user !== undefined">user info</div>
<div ng-if="field.vehicle !== undefined">vehicle info</div>
<div ng-if="field.animal !== undefined">animal info</div>
</div>
用户信息
车辆信息
动物信息
还有一件事。。。你能合并案例吗,意思是当=“'user'| |'animal'”时像ng switch这样的东西?不,你不能这样做。顺便说一句,当使用ng开关时,你不应该使用额外的'
(与我的第一个答案相反),angular将属性值作为字符串处理。下面是相关的源代码:谢谢,非常详细。这依赖于item对象有一个字段“type”。。。如果你的对象没有这个呢?
<ul>
<li ng-repeat="item in items" ng-switch="item.type">
<img ng-switch-when="user" ng-src="item.src">
<a ng-switch-when="vehicle">{{item.link}}</a>
<span ng-switch-when="animal">{{item.name}}</span>
</li>
</ul>
<div ng-repeat="field in fields">
<div ng-if="field.user !== undefined">user info</div>
<div ng-if="field.vehicle !== undefined">vehicle info</div>
<div ng-if="field.animal !== undefined">animal info</div>
</div>