कोणीय 2 में, आप एक घटक के लिए @CanActivate
एनोटेशन निर्दिष्ट कर सकते हैं जहां आप यह निर्धारित कर सकते हैं कि घटक सक्रिय होना चाहिए या नहीं। इसका कारण यह नहीं है कि यह इंटरफ़ेस नहीं है क्योंकि घटक से पहले कॉलबैक को कॉल किया जाता है। समस्या यह है कि, मैं उस कॉलबैक में निर्भरता प्राप्त करने के लिए एक तरीका नहीं समझ सकता। और मुझे अपनी सेवा की ज़रूरत है जो मुझे बताती है कि क्या मैं लॉग इन हूं या नहीं (और किसके रूप में) यह निर्धारित करने के लिए कि किसी विशेष घटक को रूटिंग की अनुमति है या नहीं।कोणीय 2: @CanActivate में निर्भरता इंजेक्ट करें?
मैं @CanActivate कॉलबैक में निर्भरता कैसे लगा सकता हूं? मैं ES5 उपयोग कर रहा हूँ, और यह काम नहीं करता:
app.ListsComponent = ng.router.CanActivate([
app.SessionService,
function(session, instruction) {
console.log(session);
return true;
}
])(app.ListsComponent);
संपादित करें: वैकल्पिक रूप से, मैं घटक पर routerOnActivate
जीवन चक्र घटना का उपयोग कर सकते हैं, और this.router.navigate
का उपयोग उपयोगकर्ता को दूर भेजने की अगर वे नहीं करना पड़ेगा वहाँ रहना। नकारात्मक पक्ष यह है कि यह ब्राउज़र इतिहास टूट जाता है: अगर मैं तुम्हें एसिंक्रोनस रूप से हर बार जब आप किसी विशेष URL पर पहुंचने, रीडायरेक्ट कर आप बहुत उपयोगी आपके ब्राउज़र में वापस बटन का उपयोग नहीं कर सकते। router.navigate
इस तरह की स्थिति के लिए history.pushState
के बजाय history.replaceState
का उपयोग करने का कोई तरीका है?
DI एक बार समस्या होनी चाहिए [राउटर हुक इंजेक्शन योग्य और कोर के साथ संगत] (https://github.com/angular/angular/issues/7485) हल हो गया है। मील का पत्थर वर्तमान में कोणीय 2 रिलीज उम्मीदवार है। –