ट्रिगर नहीं कर रहा है मुझे एक अवलोकन योग्य ट्रिगरिंग की सदस्यता के साथ कोई समस्या नहीं है।कोणीय 2 अवलोकन योग्य सदस्यता
मैं एक लेआउट पक्ष एनएवी लेआउट के निर्देश इस तरह लग रही का उपयोग कर:
<md-sidenav-layout class="nav-bar">
<md-sidenav #start>
<nav>
<a [routerLink]="['/home']">Home</a>
</nav>
<button md-button (click)="start.close()">Close</button>
</md-sidenav>
<router-outlet></router-outlet>
</md-sidenav-layout>
मैं क्या करने की जरूरत है खुला घटक है कि रूटर-आउटलेट प्रदर्शित कर रहा है से पक्ष एनएवी है।
ऐसा ही एक घटक इस प्रकार दिखाई देंगे:
@Injectable()
export class SidenavService {
private toggle = new Subject<string>();
private toggleObs = this.toggle.asObservable();
getSidenavObs() {
return this.toggleObs;
}
toggleSidenav(state: string) {
this.toggle.next(state);
}
}
अंत में माता पिता के वर्ग के लिए कोड (उस के साथ संबंध रखता है:
@Component({
providers: [SidenavService, MdIconRegistry],
directives: [MdIcon],
templateUrl: `<md-icon (click)="toggleSidenav()">menu</md-icon>`,
styleUrls: ["./home.component.scss"]
})
export class Home {
myColor: string;
constructor(private sidenavService: SidenavService) {
this.myColor = "primary";
this.sidenavService.getSidenavObs().subscribe(state => {console.log("state change")});
}
toggleSidenav() {
this.sidenavService.toggleSidenav("open");
}
}
मैं एक सेवा है जो इस तरह की एक नमूदार रिटर्न बनाया है साइड एनवी लेआउट एचटीएमएल):
@Component({
providers: [MdSidenav, SidenavService],
directives: [ROUTER_DIRECTIVES, MD_SIDENAV_DIRECTIVES, MD_BUTTON_DIRECTIVES],
selector: "app",
templateUrl: "app.html",
styleUrls: ["./app.scss"],
})
export class App {
subscription: Subscription;
constructor(private sidenavService: SidenavService, private sidenav: MdSidenav) {
this.subscription = sidenavService.getSidenavObs().subscribe(status => {
console.log("state change");
sidenav.open();
}, error => {
console.log(error);
},() => {
console.log("completed");
});
}
}
अब मेरी समस्या यह है कि सदस्यता ऐप घटक ट्रिगर नहीं करता है, हालांकि, होम घटक में सदस्यता (जो राउटर-आउटलेट डिस्प्ले है) अपेक्षित के रूप में ट्रिगर किया जाता है।
क्या मुझे यहां कुछ याद आ रही है? क्योंकि तुम दोनों के लिए एक प्रदाता के रूप में सूचीबद्ध किया है SidenavService
https://angular.io/docs/ts/latest/cookbook/component-communication.html#!#bidirectional-service
धन्यवाद एक बहुत:
डि बारे में अधिक जानकारी के लिए, निम्न लिंक का एक पढ़ा है! यह मेरी समस्या हल हो गई। – mda144
धन्यवाद माइकल! – Leibniz
धन्यवाद माइकल !! आपने मुझे – bews99