抱歉,我很难说出我遇到的问题。

我有一个名为feedCounter的数组和一个名为postFeed的数组。我想显示feedCounter的长度,当用户单击它时,postFeed等于feedCounter,但是当feedCounter获取新元素时,postFeed不应该使用它更新...

我正在做的是将feedCounter设置为firebase中的snapshot

this.subscription.on('child_added', (snapshot) => {
    this.feedCounter.push(snapshot.val());
});


然后在我的html中执行以下操作:

<div (click)="postFeed = feedCounter;">{{feedCounter?.length}}</div>
<post *ngFor="let post of postFeed.reverse()"></post>


问题是,当我第一次单击postFeed时,feedCounter似乎已绑定到div,而我不希望自动更新。

我怎样才能解决这个问题?谢谢!

最佳答案

根本原因是您分配了postFeed = feedCounter;,因此两个变量都将引用同一数组,并向feedCounter添加新元素,与向postFeed添加新元素相同。要分离它们,您应该在分配之前克隆它,如下所示:postFeed = feedCounter.slice(0);

关于javascript - Angular2/Firebase-Array1等于array2而不将它们绑定(bind)在一起,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/49343992/

10-10 23:13