当前位置: 首页 > 面试题库 >

如何在没有html元素的情况下使用ng-repeat

施旭东
2023-03-14
问题内容

我需要使用ng-repeat(在AngularJS中)列出数组中的所有元素。

复杂的是,数组的每个元素都将转换为表的一,两或三行。

我不能创建有效的html(如果ng-repeat用于元素上),因为<tbody>和之间不允许使用任何类型的重复元素<tr>

例如,如果在上使用ng-repeat <span>,我将得到:

<table>
  <tbody>
    <span>
      <tr>...</tr>
    </span>
    <span>
      <tr>...</tr>
      <tr>...</tr>
      <tr>...</tr>
    </span>
    <span>
      <tr>...</tr>
      <tr>...</tr>
    </span>
  </tbody>
</table>

无效的html。

但是我需要生成的是:

<table>
  <tbody>
    <tr>...</tr>
    <tr>...</tr>
    <tr>...</tr>
    <tr>...</tr>
    <tr>...</tr>
    <tr>...</tr>
  </tbody>
</table>

其中第一行由第一个数组元素生成,接下来的三行由第二个数组生成,第五行和第六个由最后一个数组元素生成。

如何使用ng-repeat,使其绑定的html元素在渲染过程中“消失”?

还是对此有另一种解决方案?

澄清:生成的结构应如下所示。每个数组元素可以生成表的1-3行之间。理想情况下,答案应支持每个数组元素0-n行。

<table>
  <tbody>
    <!-- array element 0 -->
    <tr>
      <td>One row item</td>
    </tr>
    <!-- array element 1 -->
    <tr>
      <td>Three row item</td>
    </tr>
    <tr>
      <td>Some product details</td>
    </tr>
    <tr>
      <td>Customer ratings</td>
    </tr>
    <!-- array element 2 -->
    <tr>
      <td>Two row item</td>
    </tr>
    <tr>
      <td>Full description</td>
    </tr>
  </tbody>
</table>

问题答案:

更新: 如果您使用的是Angular 1.2+,请使用ng-repeat-
start
。请参阅@jmagnusson的答案。

否则,如何将ng-repeat放在身上?(AFAIK,可以在单个表中包含多个。)

<tbody ng-repeat="row in array">
  <tr ng-repeat="item in row">
     <td>{{item}}</td>
  </tr>
</tbody>


 类似资料:
  • 问题内容: 我目前正在使用这段代码来呈现列表: 但是,该元素在某些浏览器上引起一些非常小的渲染缺陷。我想知道是否可以在没有div容器的情况下执行ng- repeat,或者通过其他方法来达到相同的效果。 问题答案: 正如Andy Joslin所说,他们正在研究基于注释的ng- repeats,但显然存在太多浏览器问题。幸运的是,AngularJS 1.2添加了对重复的内置支持,而无需使用新的指令和添

  • 使用cssSelector,我能够找到一些具有id属性的元素。例如: 使用Selenium 2(WebDriver)中的isDisplayed(),可以发现它是真的。 我的问题是单击下面的一些链接,我可以使用xpath找到这些链接,但使用isDisplayed()发现这些链接为false。 我尝试使用以下代码查找: 大小显示为1,但isDisplayed()返回false。 如何使此元素可见并能够

  • 问题内容: .content { 如果我不想使按钮模糊,我该怎么办? 问题答案: 如何禁用子元素上的模糊?

  • 我正在玩grpc 有人成功使用进行生产吗?我们需要包括特使在内的所有依赖项吗?

  • 我不确定以下问题是否适用于jaxb,但我还是会问。 在某个项目中,我们使用带有定义模式的jaxb来创建xml文件的下一个结构。 我们还使用jaxb的自动类生成来创建类:aaa和bbb,其中aaa生成为@XmlRootElement。 我们现在希望在新项目中使用相同的模式,该模式也将与以前的项目兼容。我想做的是使用相同的jaxb生成的类,而不需要对模式进行任何更改,以便仅将单个bbb对象封送到xml

  • 我看到的所有解决方案都需要使用。但是,我想在Eclipse之外的单个文件上使用CDT解析器。那有什么办法吗?