Javascript Angular2 NgFor内部树模型:删除然后添加元素时顺序错误
我在玩angular 2 alpha 44 我有一个树模型,并使用递归性来显示它。 每个组包含“标准”、“段”和其他“组”。 我们可以在任何级别删除和添加所有这些元素 当我删除元素,然后在同一级别上添加其他元素时,会出现一种奇怪的行为。 新的顺序是错误的,新元素得到了一个更大的Javascript Angular2 NgFor内部树模型:删除然后添加元素时顺序错误,javascript,typescript,angular,Javascript,Typescript,Angular,我在玩angular 2 alpha 44 我有一个树模型,并使用递归性来显示它。 每个组包含“标准”、“段”和其他“组”。 我们可以在任何级别删除和添加所有这些元素 当我删除元素,然后在同一级别上添加其他元素时,会出现一种奇怪的行为。 新的顺序是错误的,新元素得到了一个更大的位置属性,数组在此属性上排序,但它们出现在元素被删除的位置 新阵列将记录在控制台中,并以正确的顺序显示。 如果使用“显示/隐藏”按钮删除和添加所有树,视图现在的顺序正确 你可以: 移除第一个元素 添加新元素 请注意,视图中
位置
属性,数组在此属性上排序,但它们出现在元素被删除的位置
新阵列将记录在控制台中,并以正确的顺序显示。
如果使用“显示/隐藏”按钮删除和添加所有树,视图现在的顺序正确
你可以:
trackBy
和ng2NgFor
有类似的功能吗?
我在源代码中找不到任何关于它的信息。
trackBy
是在2.0.0-beta.3中添加的
另见
使用模板元素:
@Component(
template: `
<template ngFor let-item [ngForOf]="items" [ngForTrackBy]=customTrackBy">
{{item}}
</template>
`
)
class MyComponent {
customTrackBy(index: number, obj: any): any {
return index;
}
}
@组件(
模板:`
我添加了管道“订单”,也没有帮助…非常有趣的问题。如果使用
的话,这似乎是
表单的问题。不完全确定,但是你可以在他们的回购中查找,如果你没有发现任何新问题。thx@EricMartinez,你是对的,它与其他语法一起工作。我在eir repo并发布了我的plunker。ngForTrackBy的作用是什么?指导ngFor
关于身份检查。如果数组包含重复项,ngFor
无法正常工作。使用自定义trackBy
可以覆盖默认行为。tx找到了我需要的:tx一如既往地支持。。。
@Component(
template: `
<div *ngFor="let item of items; trackBy:customTrackBy">
{{item}}
</div>
`
)
class MyComponent {
customTrackBy(index: number, obj: any): any {
return index;
}
}