const episodepublishform = { template: '

Publish Episode

', current_page: "Publish Episode" } const customcss = { template: '

Edit CSS


', current_page: "Publish Episode", data() { return { loading: false, css: null, error: null } }, created() { // fetch the data when the view is created and the data is // already being observed this.fetchData() }, watch: { // call again the method if the route changes '$route': 'fetchData' }, methods: { fetchData() { this.error = this.css = null this.loading = true getCss( (err, css) => { this.loading = false if (err) { this.error = err.toString() } else { this.css = css } }) } } } const routes = [ { path: '/publish', component: episodepublishform }, { path: '/theme', component: customcss } ] const router = new VueRouter({ routes }) const app = new Vue({ router, data: { header: 'Pogo Admin', } }).$mount('#app') function getCss(callback) { var xmlHttp = new XMLHttpRequest(); xmlHttp.onreadystatechange = function() { if (xmlHttp.readyState == 4 && xmlHttp.status == 200) callback(null, xmlHttp.responseText) } xmlHttp.open("GET", "/admin/css", true); xmlHttp.send(null); }