मुझे कोई समस्या है जहां EventEmitter मूल घटक के मान को आउटपुट नहीं करता है। यहां बताया गया है कि मैं कैसे सेटअप कर रहा हूं।कोणीय 2 EventEmitter
main.component.ts (लघु संस्करण)
...
@Component({
selector: 'my-app',
templateUrl: '/app/views/main.ejs',
directives: [ROUTER_DIRECTIVES],
providers:[AuthService],
inputs:['userLoggedIn']
})
@RouteConfig([
{path:'/logout', name: 'Logout', component: AuthComponent},
])
export class AppComponent implements OnInit, CanReuse{
constructor(private _auth_service: AuthService){
this._auth_service.authChanged.subscribe(data=>this.authChangedHandler(data));
}
public authChangedHandler($event){
alert($event);
}
}
...
auth.component.ts (लघु संस्करण)
export class AuthComponent implements OnInit, CanReuse{
public loggedIn = false;
public user = {};
@Output()
authChanged: EventEmitter<string>;
public selectedTab = "/login";
constructor(private _router: Router, private _location:Location,private _http: Http, private _auth_service: AuthService){
this.authChanged = new EventEmitter();
this.authChanged.emit("authChanged");
}
}
main.ejs (लघु संस्करण)
<nav (authChanged)="authChangedHandler($event)"></nav>
<router-outlet></router-outlet>
,210
auth.service.ts
export class AuthService {
public authChanged: EventEmitter<string>;
constructor(private _http: Http){
this.authChanged = new EventEmitter();
this.authChanged.emit("authChanged");
}
}
संपादित करें: मैं AuthService
कोड है जो मैं मुख्य घटक में इंजेक्षन जोड़ लिया है। यह अब काम करना चाहिए लेकिन नहीं करता है।
क्या आपको इसके लिए समाधान मिला? मैं @RouteConfig – Sanjeev
@Sanjeev हां में जोड़े गए घटक से उत्सर्जित एक ईवेंट को भी कैप्चर करना चाहता हूं। मैंने सेवा कार्यक्रमों का उपयोग किया। मैंने यहां एक प्लंकर बनाया है (https://plnkr.co/edit/WZ5HbvBP5LMSqZQtixoG?p=preview) – xmaestro
विचार बूटस्ट्रैप पर एक सेवा इंजेक्ट करना है और उस सेवा में ईवेंटमेटर होगा जिसमें प्रत्येक घटक वैश्विक रूप से सदस्यता ले सकता है। – xmaestro