क्या मेरे घटक दिखाई देने पर अंगुलर 2 में कोई ईवेंट निकाला गया है? इसे एक टैबcontrol में रखा गया है और जब उपयोगकर्ता स्विच करता है तो मैं अधिसूचित होना चाहता हूं, मैं अपने घटक को किसी ईवेंट को आग लगाना चाहता हूं।घटना जब घटक दिखाई देता है
उत्तर
मैंने आखिरकार क्या किया (जो बहुत सुंदर नहीं है लेकिन काम करता है जबकि मेरे पास ऐसा करने का बेहतर तरीका नहीं है ...) ngAfterContentChecked()
कॉलबैक का उपयोग करना और परिवर्तन को स्वयं संभालना है।
@ViewChild('map') m;
private isVisible: boolean = false;
ngAfterContentChecked(): void
{
if (this.isVisible == false && this.m.nativeElement.offsetParent != null)
{
console.log('isVisible switched from false to true');
this.isVisible = true;
this.Refresh();
}
else if (this.isVisible == true && this.m.nativeElement.offsetParent == null)
{
console.log('isVisible switched from true to false');
this.isVisible = false;
}
}
आप ngAfterViewInit()
कॉलबैक
https://angular.io/docs/ts/latest/guide/lifecycle-hooks.html
यह मेरी ज़रूरतों को पूरा नहीं करता है, मैंने इस कॉलबैक के अंदर एक लॉग रखा , और इसे केवल एक बार बुलाया जाता है (भले ही मेरा घटक दिखाई दे या न हो) – Shimrod
कोणीय को यह जानने का कोई तरीका नहीं है कि कोई घटक दिखाई दे रहा है अगर यह किसी अन्य डोम तत्व के पीछे छिपा हुआ है .. यदि आप '* ngIf =" का उपयोग करते हैं "'दिखाने/छिपाने के लिए, तब टैब को चुना जाता है या अचयनित किया जाता है, फिर' ngAfterViewInit()' हर बार कहा जाता है। –
उपयोग कर सकते हैं ऐसा कोई घटना है, लेकिन आप एक टैब नियंत्रण का उपयोग कर रहे हैं, उचित तरीके से यह करने के लिए के लिए एक टैब परिवर्तन @Output
बनाने के लिए किया जाएगा यदि आपका कस्टम नियंत्रण है, तो अन्य टैब नियंत्रण (जैसे ng-bootstrap) में कुछ टैब परिवर्तन ईवेंट भी हैं।
यदि आपके घटक को इसके बारे में पता होना चाहिए, तो आप यह टैब बदलने के लिए इस टैब परिवर्तन ईवेंट का उपयोग कर सकते हैं, और यदि आपको पता है कि कौन सा टैब दिखाई दे रहा है, तो आप यह भी जानते हैं कि आपका घटक दिखाई दे रहा है या नहीं। तो अगर आप कुछ इस तरह कर सकते हैं:
onTabChange(event) {
this.currentTab = /** Get current tab */;
}
और फिर आप यह अपने आप में अपने घटक को भेज सकते हैं अगर आप एक निवेश है:
@Input() activated: boolean = false;
और फिर आप के साथ इसे लागू कर सकते हैं:
<my-component [activated]="currentTab == 'tabWithComponent'"></my-component>
अब आप OnChanges
को देख सकते हैं कि मॉडल मान activated
true
पर बदल गया है या नहीं।
तुम भी एक Observable
इस तरह के साथ एक सेवा का उपयोग करने के लिए इस refactor कर सकते हैं:
@Injectable()
export class TabService {
observable: Observable<any>;
observer;
constructor() {
this.observable = Observable.create(function(observer) {
this.observer = observer;
});
}
}
एक घटक इन परिवर्तनों को सुनने के लिए चाहता है, यह tabService.observable
की सदस्यता ले सकते। जब आपका टैब बदलता है, तो आप tabService.observer.next()
के साथ नई वस्तुओं को धक्का दे सकते हैं।
यह एक अच्छा विचार है, हालांकि मुझे यह नहीं लगता कि यह मेरे मामले में काम करता है क्योंकि टैब नियंत्रण मैं उपयोग करता हूं प्राइमेंग से है और वे केवल टैब परिवर्तन पर एक ईवेंट प्रदान करते हैं _before_ टैब वास्तव में बदल गया है => मेरा घटक इस समय दिखाई नहीं दे रहा है ... – Shimrod
- 1. Actionbar लटकती दिखाई देता है जब मेनू
- 2. एमडीआई बच्चा केवल तब दिखाई देता है जब विंडोस्टेट अधिकतम
- 3. जब उपयोगकर्ता नियंत्रक दिखाई देता है तो जावास्क्रिप्ट निष्पादित करें
- 4. ओरिएंटेशन चेंज: IllegalStateException जब डायलॉगफ्रेगमेंट दिखाई देता है
- 5. छड़ी तत्व दिखाई देता है
- 6. जावास्क्रिप्ट घटना जब माउस ब्राउज़र विंडो छोड़ देता है
- 7. जब यह स्क्रीन पर दिखाई देता हो जाता है जब स्क्रॉल जब यह स्क्रीन
- 8. ऑटोहोटीकी विंडो घटना दिखाई देती है
- 9. Matplotlib खिड़की पीठ पर दिखाई देता है?
- 10. स्क्रॉलबार हमेशा UIScrollView पर दिखाई देता है?
- 11. गूगल के नक्शे दिखाई नहीं देता है
- 12. दिखाई देता है तो क्षेत्र वर्ग
- 13. System.Diagnostics.Debug.Write आउटपुट कहां दिखाई देता है?
- 14. क्लिपडेटा पर लेबल कहां दिखाई देता है?
- 15. jQuery दिखाई देता है लेकिन छिपा तत्वों
- 16. कहाँ CLSIDFromProgID() रजिस्ट्री में दिखाई देता है?
- 17. Android BottomNavigationView क्यों दिखाई नहीं देता है?
- 18. Ionic2 टॉगल घटक परिवर्तन घटना
- 19. jQuery घटना - तत्व दिखाई देने लगते हैं
- 20. pyqt: जब विजेट दिखाई देता है/छुपा रहता है तो संकेत प्राप्त होता है
- 21. कीबोर्ड मोबाइल फिक्स्ड फ़ूटर चल रहा है जब कीबोर्ड दिखाई देता है
- 22. नेविगेशन Item.titleView क्यों दिखाई देता है जब presentmodalviewcontroller कहा जाता है?
- 23. WebView onPageFinished नहीं कहा जाता है जब MapView दिखाई देता है
- 24. प्रतिक्रियात्मक मूल: जब इसके ऊपर अलर्ट दिखाई देता है तो मॉडल छिपा नहीं होता है
- 25. | - (20) - [UIInputSetContainerView बाधा तब होती है जब कॉल-इन स्टेटस बार दिखाई देता है
- 26. Winforms सूचीदृश्य - पहले कॉलम हमेशा दिखाई देता है?
- 27. घटक में iframe टैग प्रकाशन पर अधूरा पृष्ठ देता है
- 28. जावा वेबड्राइवर: तत्व दिखाई नहीं देता अपवाद
- 29. स्कैनफ़ इनपुट इनपुट छोड़ने के लिए क्यों दिखाई देता है?
- 30. iOS 7 मल्टीटास्किंग स्विचर: नेवबार काला दिखाई देता है
यदि यह एक टैब नियंत्रण है जिसे आपने कार्यान्वित किया है, तो निश्चित रूप से आप एक ईवेंट एमिटर जोड़ सकते हैं और उसी स्थान पर उत्सर्जित कर सकते हैं जहां आप टैब बदलते हैं? – Seer
वैसे मैं प्राइमेंग के टैब नियंत्रण का उपयोग करता हूं, और अस्तित्व में आने वाली एकमात्र घटना को बदलाव से पहले बुलाया जाता है, इसलिए इस समय नियंत्रण अभी तक दिखाई नहीं दे रहा है :( – Shimrod