2016-04-21 8 views
0

私はこのようになりますVUE/CoffeeScriptのアプリがあります。Vueのロードしていないデータ

あり、コンソールにはエラーはありません、そしてそれがJSONのために成功した外部要求を作っていると言う、しかし私は{{book.name}}を言うときに、 JSONからではなく、Testとして返されます。

new Vue({ 
el: '#app', 
data: { 
    showModal: false, 
    book: { 
    name: "Test", 
    description: "", 
    photo: "" 
    } 
} 

ready:() -> 
    this.getBookData() 
    console.log (this.book) 

methods: { 
    getBookData:() -> 
    self = $(this) 
    $.getJSON 'GGPK4A.json', (data) -> 
     self.book = data 
} 

}) 

答えて

2

私はCoffeeScriptの中でどのように行うのか分からないが、私は問題はthisはそれほど機能していないthis.bookを設定し、コールバック関数内でのVueを参照していないということだと思います。通常、関数上で.bind(this)を使用するか、ajax呼び出しの前にvar vm = thisを設定し、コールバックにvm.bookを設定することでこれを修正できます。

+0

返信いただきありがとうございます。私はすでにこれをやろうとしましたが(それは 'this = this'をajax関数の外に設定します)、状況を変えていないようです。 –

+0

ああ、http://リクエストを送信した直後に 'console.log()'を呼び出しています。コールバック関数で本を記録しようとすると、正しいはずです。 – Jeff

+0

コールバック関数にログオンすると正しいですが、問題は '{{book.name}}'がajaxリクエストが完了しても更新されないということです。 –

関連する問題