में काम नहीं करेगा मेरे पास Angular2- आधारित क्लाइंट पक्ष के साथ एक एप्लिकेशन है।कोणीय 2 @ होस्टलिस्टर व्युत्पन्न घटक
abstract class BaseClass {
@HostListener('window:beforeunload') beforeUnloadHandler() {
console.log('bla');
}
}
और दो बहुत ही एक दूसरे को व्युत्पन्न वर्ग के समान:
@Component({
selector: 'derived-one',
templateUrl: './templates/app/+derived-one/derived-one.component.html'
})
export class DerivedOne extends BaseClass {
}
@Component({
selector: 'derived-two',
templateUrl: './templates/app/+derived-two/derived-two.component.html'
})
export class DerivedTwo extends BaseClass {
}
समस्या यह है कि, उदाहरण के लिए, DerivedOne
में beforeUnloadHandler
ठीक है, जबकि DerivedTwo
में काम करता है यह नहीं करता है मैं एक आधार वर्ग है बिल्कुल एक कॉल प्राप्त नहीं है।
मुझे पता है कि यह उपरोक्त जानकारी को देखने के कारण क्यों है, लेकिन शायद किसी को संदेह हो सकता है कि इस तरह के अजीब व्यवहार का कारण क्या हो सकता है।
कुछ और सूचनाएं:
अगर मैं निम्नलिखित का उपयोग करें:
abstract class BaseClass
constructor(){
window.onbeforeunload = function(){
console.log('bla');
}
}
}
सब कुछ ठीक काम करता है, लेकिन मैं अभी भी एक Angular2 आधारित समाधान खोजने के लिए चाहते हैं;
अगर मैं लिखना
abstract class BaseClass {
beforeUnloadHandler() {
console.log('bla');
}
}
और में derived-two.component.html
<div (window.beforeunload)="beforeUnloadHandler()"></div>
सब कुछ भी ठीक काम करता है, लेकिन यह एक बदसूरत हैक की तरह दिखता है;
फिर, अगर मैं लिखने
abstract class BaseClass {
beforeUnloadHandler() {
console.log('bla');
}
}
और
@Component({
selector: 'derived-two',
host: {'window:beforeunload': 'beforeUnloadHandler' }
templateUrl: './templates/app/+derived-two/derived-two.component.html'
})
export class DerivedTwo extends BaseClass {
}
यह काम नहीं करेगा।
अंत में, अगर मैं और DerivedOne
में उपयोग करता हूं, तो यह काम करता है, लेकिन मैं डुप्लिकेट कोड का उपयोग करने से बचना चाहता हूं।
उम्मीद है कि ऊपर दी गई जानकारी के साथ काम करने के लिए पर्याप्त होगा (कम से कम कुछ अनुमान लगाने के लिए)।
कृपया, स्पष्ट करें कि कक्षा के लिए सही तरीके से व्यवहार करने की शर्तें क्या हैं। क्या व्युत्पन्न है जो काम नहीं करता है? क्या घटक एक साथ उपयोग में उपयोग किए जाते हैं? क्या यह उस क्रम पर निर्भर करता है जिसमें वे आयात किए जाते हैं या जिस क्रम में वे दिखाई देते हैं? – estus