DebugElement.children与NativeElement.children的顺序不同

时间:2016-11-25 19:26:07

标签: javascript angular angular2-testing

我有一个html表,想要获取所有行。但是,在DebugElement或NativeElement上调用.children会返回不同的顺序。

我的表:

<tbody>
  <tr>
    <td>1</td>
  </tr>
  <tr>
    <td>2</td>
  </tr>
  <tr>
    <td>3</td>
  </tr>
</tbody>

在第一个日志中的DebugElement和第二个日志中的NativeElement上调用.children(将它们都转换为数组):

const table: DebugElement = fixture.debugElement.query(By.css('table'));  
console.log(table.query(By.css('tbody')).children.map(e => e.nativeElement));
console.log(Array.from(table.query(By.css('tbody')).nativeElement.children));

第一个记录以下列表:

[
  <tr>
    <td>2</td>
  </tr>,
  <tr>
    <td>1</td>
  </tr>,
  <tr>
    <td>3</td>
  </tr>
]

而第二个记录以下内容:

[
  <tr>
    <td>1</td>
  </tr>,
  <tr>
    <td>2</td>
  </tr>,
  <tr>
    <td>3</td>
  </tr>
]

为什么交换第一个日志中的订单? API行为有区别吗?

1 个答案:

答案 0 :(得分:1)

这似乎是Angular最近的一个错误:https://github.com/angular/angular/issues/13066