:Vue.js + vue-resource + vue-router =字句宣言エラー? VUE-リソースとVUE-ルータとVue.jsを使用しようとするとエラーが表示され
ReferenceError: can't access lexical declaration `vm' before initialization
限り、ページが最初のルートがロードされたときに、それがのみ表示されますダウンA私は、エラーを追跡し、例えばtest.com/#/files(エラー)とtest.com/(エラーなし)。 requestDirectory()
のコードがすべてnext()
に置き換えられた場合、エラーは表示されません。だから、コード構造を継承しているようです。何か案は?
const routerComponents = {
home: { template: '<p>Home ...</p>' },
files: { template: '<p>Files</p>' }
};
function requestDirectory(to, from, next) {
console.log("Loading files in ...");
vm.$http.post('/api/dir', {dir: 'photos'}).then((res) => {
console.log("done");
next()
}, (err) => {});
}
const router = new VueRouter({
routes: [
{ path: '/', component: routerComponents.home },
{ path: '/files', component: routerComponents.files, beforeEnter: requestDirectory }
]
});
const vm = new Vue({
data: {
title: 'Home'
},
router: router
});
window.onload = function() {
vm.$mount('#app');
};
私はこれを読んで、これは1つがVUE-ルータとVUE-リソースを使用することはできません意味するだろう? – Bernd
さまざまな種類のコンポーネントがあります。ルータコンポーネントはすべてルーティングに関するものですが、正しく理解しています。とにかく 'vm。$ http'の代わりに' Vue.http'経由でグローバルにアクセスしようとしますか? –
'Vue.http'は動作しますが、新しいエラー" next undefined "が発生します。すべてで、コンポーネント' created'コールバックにHTTPリクエストを配置しました。 – Bernd