Javascript AngularJS最佳实践:什么&x27;这是去';更改模板';基于对象数据?

Javascript AngularJS最佳实践:什么&x27;这是去';更改模板';基于对象数据?,javascript,angularjs,Javascript,Angularjs,很好的警告:这是个有棱角的新手 我使用ng repeat在一个对象数组中循环,数组中有4-5种不同类型的数据 它们都有相同的基本格式,但每种类型都有一些特定类型的元数据 坦率地说,如果没有大量的ng if语句,我不知道如何处理这个问题 我们目前正在使用多个模板类型的mustach(我希望消除大量重复代码),但希望使用Angular来处理这个问题 这是一个非常简单的例子,说明我的对象可能是什么样子 [{ "title": "title1", "by": 1, "text": "Firs

很好的警告:这是个有棱角的新手

我使用
ng repeat
在一个对象数组中循环,数组中有4-5种不同类型的数据

它们都有相同的基本格式,但每种类型都有一些特定类型的元数据

坦率地说,如果没有大量的
ng if
语句,我不知道如何处理这个问题

我们目前正在使用多个模板类型的mustach(我希望消除大量重复代码),但希望使用Angular来处理这个问题

这是一个非常简单的例子,说明我的对象可能是什么样子

[{
  "title": "title1",
  "by": 1,
  "text": "First post EVER!"
},
{
  "title": "title2",
  "by": 12,
  "text": "2nd post",
  "meta_data": {
    "tag": 5,
    "img": "http://link.com/img.jpg"
  }
},
{
  "title": "title3",
  "by": 104,
  "text": "3rd",
  "meta_data": {
    "section": 22,
    "video": "http://link.com/img.jpg"
  }
}]
这里有更多的字段,但我不确定处理这个问题的合适方法是什么

也许像
这样的定制指令在不存在时不返回任何内容


提前谢谢你的帮助。我不知道这样做的最佳实践是什么。

您可以使用
ngInclude
处理多个HTML模板并减少重复代码。首先为不同模板类型的公共部分创建一个模板,如下所示

commonHeader.html

<h1>{{obj.title2}}</h2>
<div>{{obj.text}}</div>
{{obj.title2}
{{obj.text}
然后,您可以按以下方式创建模板:

<div ng-include="commonHeader.html""></div>
<div>depend on the type</div>