У меня есть служба, которая расширяет EventEmitter.
services/service/service.js
(относительно main.js)
import { EventEmitter } from "events";
class Service extends EventEmitter {}
Внутри класса Service у меня есть следующий метод, который возвращает Promise:
/**
* Method to fetch the Active Survey by "surveySlug":
*/
fetchActiveSurvey(serviceSlug) {
return new Promise((resolve, reject) => {
axios.get(`${this.baseURL}/service/${serviceSlug}`, { headers: { Authorization: AuthStr } }).then(response => {
resolve(response.data);
}).catch(error => {
if (error.response && error.response.data.status != 200) {
Vue.$router.push({ name: 'home'});
}
});
});
}
У меня также есть обычный routes.js
в том же каталоге, что и main.js
, который работает нормально.
Сервисы затем устанавливаются как плагины:
import Service from "../services/service/service"; // <= Refrences `service.js`
export default {
install(Vue) {
Vue.prototype.$service = Service;
}
};
Я пробовал следующее:
Vue.$router.push({ name: 'home'});
Vue.prototype.$router.push({ name: 'home'});
Однако, похоже, я обнаружил, что $router
не определено.Каков наилучший способ определения маршрутов проталкивания маршрутизатора из этого сервиса?