2016-11-25 62 views
3

我有一个html表并希望获取所有行。然而,在DebugElement或NativeElement上调用.children会返回不同的顺序。DebugElement.children的顺序与NativeElement.children的顺序不同

我的表:

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

调用在所述第一日志,并在所述第二日志中的NativeElement一个DebugElement .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行为有差异吗?

回答