我有一個VueJS實例與一些數據:如何從jQuery AJAX調用中更新VueJS實例的數據?
var vm = new Vue({
el: '#root',
data: {
id: '',
name: {
firstname: "",
lastname: "",
country: "",
valueset: false
},
// ...
在我的HTML,我也有:
<input class="id" type="text" size="4" maxlength="4" v-model.lazy="id" v-on:change="create_casenr">
因此填補了這一領域之後,我的方法實例的create_casenr
被觸發。
create_casenr: function(event) {
// update the full name of user
$.ajax({
url: 'http://elk.example.com:9200/users/user/' + this.id
})
.done(function(data) {
console.log(data);
this.name = data._source;
this.name.valueset = true;
console.log(this.name);
})
// ...
發生什麼事是:
create_casenr
是在該領域(OK)- AJAX調用經過成功的改變叫,我看到控制檯上都預期輸出
data
和this.name
(OK) - 但
name
在VueJS實例中未更新。
我可以看到它沒有更新,因爲我的代碼依賴它的其他部分沒有看到它;我還檢查了VueJS Chrome附加組件,並且所有變量均已正確設置(包括id
),但name
除外。
有沒有一種特定的方式來處理通過jQuery AJAX調用修改的VueJS實例的數據?
對於未來的讀者:截至2016年10月,IE不支持箭頭功能(可能永遠不會像IE 11是最後一個IE)。邊緣,Chrome瀏覽器,Firefox都可以工作。 – WoJ
是的,IE11不支持箭頭功能。但是,當使用vue-cli進行生產構建時,babel編譯器負責將箭頭函數轉換爲ES5兼容代碼。所以你仍然可以使用箭頭函數,但是在Chrome/Firefox中完成整個開發,並在IE11中進行最終測試。 – Mani
謝謝 - 我不知道vue-cli。 – WoJ