具有ng-repeat的不同元素

时间:2013-07-10 11:44:52

标签: angularjs angularjs-ng-repeat

通过AJAX我得到JSON:

data : [
    {
     "type":"h2",
     "PCDATA":"Title"
    },
    {
     "type":"p",
     "PCDATA":"First paragraph."
    },
    {
     "type":"li",
     "PCDATA":"list node"
    },
    {
     "type":"p",
     "PCDATA":"First paragraph."
    }
]

现在我需要生成这样的HTML:

<h2>Title</h2>
<p>First paragraph.</p>
<ul>
    <li>list node</li>
</ul>
<p>First paragraph.</p>

我可以使用ng-repeat指令吗?如何使用一个ng-repeat循环生成不同的HTML元素?

1 个答案:

答案 0 :(得分:0)

我认为你不能只使用ng-repeat,因为我认为ng-repeat中的<{{elem.type}}>{{elem.PCDATA}}</{{elem.type}}>之类的东西不会起作用。

以下是如何在控制器中执行此操作的小提琴:http://jsfiddle.net/terebentina/H3vQ9/3/ 我用$ timeout模拟了ajax调用。

但是,请注意,这是良好做法的边界 - 您不应该在控制器内部操纵html,但在这种情况下,您可能会认为您正在操纵数据。

更好的方法是使用一个循环数据的指令,类似于我在示例中的操作