【发布时间】:2017-03-06 04:53:54
【问题描述】:
我有一个带有一些数据的 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的预期输出(确定) -
但是
name在 VueJS 的实例中没有更新。
我可以看到它没有更新,因为我的代码中依赖它的其他部分看不到它;我还检查了 VueJS Chrome 插件,所有变量都设置正确(包括id),name 除外。
当通过 jQuery AJAX 调用修改时,我应该以特定的方式处理 VueJS 实例的数据吗?
【问题讨论】: