Auf der Last der Komponente Ich abonniere ein Array von Werten und zeigt das gleiche in List und Drop Down, die gut funktioniert. Dann habe ich "Add button" hinzugefügt, der ein Objekt zu einem Array hinzufügt und dasselbe in einer Liste anzeigt.Abbrechen eines Abonnements in eckigen 2/4
Ausgabe ist wie auch, wenn ich aus dem Abonnement bin abzumelden selbst dann wird es den Wert hinzuzufügen, wenn ich auf Schaltfläche Hinzufügen bin klicken, könnte jemand mir bitte mitteilen, warum diese
Plunker geschieht: https://embed.plnkr.co/CoZCakFsx5q8GBWDBZ24/
Unten ist mein Code
import {Component} from '@angular/core';
import {PhoneService} from './phone.service'
import { ISubscription } from "rxjs/Subscription";
@Component({
selector:'phone-list',
template:`
<ul>
<li *ngFor='let phone of phones'>
<a [routerLink]="['/phone',phone.id]">
{{phone.name}}
</a>
</li>
</ul>
<select>
<option *ngFor='let phone of phones' value={{phone.name}}>
{{phone.name}}
</option>
</select>
<button (click)='add()'>Add</button>
`
})
export class PhoneListComponent {
private phones;
private phone$:ISubscription
constructor(private ps: PhoneService) {
this.phone$=this.ps.getPhoneDetails()
.subscribe((data)=> {
this.phones=data;console.log(data)
});
}
add() {
this.phone$.unsubscribe();
this.ps.addPhone();
}
}
und Servicecode
import 'rxjs/add/observable/of';
import 'rxjs/add/operator/map';
import { Injectable } from '@angular/core';
import { Observable } from 'rxjs/Observable';
export interface Phone {
id:number;
name:string;
}
@Injectable()
export class PhoneService {
private phoneList : <Phone>[] = [{
name:'Huwaei',
id:1
},{
name:'Apple',
id:2
}]
getPhoneDetails() {
return Observable.of(this.phoneList);
}
getPhone(id) {
return this.getPhoneDetails().map(phones=>
phones.find(phone=>phone.id==id)
);
}
addPhone() {
this.phoneList.push({name:'dummy',id:3});
}
}
Kannst du einfach .first() von rxjs tun? Sie müssen sich also nicht abmelden und es ist nur einer? – misha130
Hallo, überlege dir, deinen Code das nächste Mal zu formatieren, wenn du möchtest, dass jemand es liest und dir hilft. –