Я использовал эту ссылку в качестве ссылки, чтобы сделать запрос перед вводом маршрута: https://router.vuejs.org/en/advanced/data-fetching.html
import Vue from 'vue'
import VueResource from 'vue-resource'
Vue.use(VueResource)
function getCities () {
return Vue.http({
method: 'GET',
url: process.env.base_url + 'cities'
})
}
export default {
data () {
return {
cities: []
}
},
beforeRouteEnter (to, from, next) {
getCities((err, cities) => {
if (err) {
next(false)
} else {
next(vm => {
vm.cities = cities.data
})
}
})
},
watch: {
$route () {
this.cities = []
getCities((err, cities) => {
if (err) {
this.error = err.toString()
} else {
this.cities = cities.data
}
})
}
}
Однако, похоже, это не работает для меня. Я протестировал этот код, и запрос успешно выполнен. Однако результат не возвращается. На данный момент из функции возвращается сам запрос, но я не могу его показать ни в обратном вызове beforeRouteEnter, где он якобы должен назначить его vm.cities, ни в секции watch $route.
Любая помощь/мнение приветствуется.
err
ложное? - person TJ Koblentz   schedule 14.02.2017