परिस्थिति

मैं Vue के साथ एक SPA बना रहा हूँ। पॉप-अप सूचनाएं हैं, जो Vue-Noty ( https://github.com/renoguyon/vuejs के साथ बनाई गई हैं। -नोटी)।

मेरे पास एक vuex क्रिया है, सत्र की स्थिति की जांच कर रहा है, अगर यह पता चलता है कि सत्र समाप्त हो गया है, तो एक नोटी प्रदर्शित होगी ("आपका सत्र समाप्त हो गया है")। अब मैं एक लिंक जोड़ना चाहता हूं ("यहां लॉगिन करें"), लेकिन मुझे सामना करना पड़ रहा है

संकट

अधिसूचना में <a> टैग जोड़ना संभव है। वे भी ठीक काम करते हैं।

लेकिन Vue SPA को सादे <a> टैग बिल्कुल पसंद नहीं हैं...

मेरे पास एक <router-link> होना चाहिए। लेकिन यह "बस" काम नहीं करता है, इसे एक <a> उत्पन्न करने के लिए .vue फ़ाइल से पार्स किया जाना है जो सिंगल-पेज-नेविगेशन के लिए काम करता है।

नोटी टैग को संभाल सकता है, लेकिन अगर मैं इसे नोटी में जोड़ दूं तो

this._vm.$noty.error('Your Session has expired, please <router-link to="/login">log in again</router-link>.')

, यह निश्चित रूप से एक शाब्दिक <router-link> टैग के रूप में सामने आएगा, जो काम नहीं करेगा।

तो मेरा अगला विचार एक <a> को onClick="this.$router.push('/login')" के साथ रखना था।

बेशक, यह भी काम नहीं करता है, क्योंकि एक सादे डोम तत्व में कोई this नहीं है।

मेरा अगला विचार था: शायद मैं window.document के माध्यम से वू राउटर तक पहुंच सकता हूं, लेकिन मुझे इसे करने का कोई तरीका नहीं मिला

प्रश्न

मैं $router.push विधि को "सादे डोम" से बाहर vue घटक या उदाहरण से कैसे कॉल कर सकता हूं?

0
devman 9 जुलाई 2020, 14:20

1 उत्तर

सबसे बढ़िया उत्तर

तुम कोशिश कर सकते हो :

app.__vue__.$router.push({'name' : 'home'})
1
kopz 9 जुलाई 2020, 14:34