Javascript HTML中的Vue JS无法识别添加的对象和属性
我有一个名为Javascript HTML中的Vue JS无法识别添加的对象和属性,javascript,json,data-binding,vue.js,v-for,Javascript,Json,Data Binding,Vue.js,V For,我有一个名为myApp的Vue实例。我在Vue JS实例中有一个名为loadPlannedAlerts的方法,该方法在装入期间调用。这是一个AJAX调用,首先获取JSON数据,然后添加到数据中。数据是一个带有键值对的JSON对象,它看起来像是{key:'value,key2:'value2}' loadPlannedAlerts: function() { $.ajax({ method: 'GET', url: '/get-my-
myApp
的Vue实例。我在Vue JS实例中有一个名为loadPlannedAlerts的方法,该方法在装入期间调用。这是一个AJAX调用,首先获取JSON数据,然后添加到数据中。数据是一个带有键值对的JSON对象,它看起来像是{key:'value,key2:'value2}'
loadPlannedAlerts: function() {
$.ajax({
method: 'GET',
url: '/get-my-data',
success: function(data) {
myApp.messages = JSON.parse(data);
for (var i = 0; i < myApp.messages.length; i++) {
myApp.messages[i].findUser = '';
}
}
});
}
出于某种原因,我可以在浏览器的控制台中调出添加的findUser
键值,甚至可以在浏览器的dev-tools-Vue插件中看到它。但是输入到我的消息框中的数据没有绑定到每个findUser
s
我是否遗漏了什么,或者我忽略了一个操作顺序?在我添加数据之前,数据中已经存在的任何其他内容都可以绑定
更新
如果我遵循Tecade Moon对常规键值对的解决方案,在这里我根本不改变组件,并完成它应该是什么样子的构建,然后给它赋值,那么它工作得很好。如果我尝试分配一个键值对,其中的值是另一个包含键值对的对象,那么它仍然不起作用。是myApp。消息在该组件的数据
对象中预先声明
看起来您正在为每条消息添加一个新的findUser
属性。Vue无法检测到这一点(请参阅)。您应该在将有效负载分配给组件之前对其进行变异(此时Vue将使其处于反应状态)
成功:函数(数据){
const messages=JSON.parse(数据);
对于(var i=0;i
我现在不在工作,所以我无法验证它在我的情况下是否有效,但我刚刚创建了一个小测试,它确实有效。明天我会尝试这个方法,如果它有效的话,我会将这个答案标记为已接受。这个解决方案是可行的,但当我尝试添加更多内容时也失败了。如果我遵循这个模式,并尝试添加一个键值对,它就会起作用。如果我尝试添加一个键,该键的值是一个具有键值对的对象,那么它无法识别该值。不知道为什么。如果你需要澄清我的意思,我可以更新我原来的帖子。那应该行。我需要看看你的代码和模板。
<div v-for="(message, index) in messages">
<input type="text" name="user" v-model="message.findUser">
</div>
success: function(data) {
const messages = JSON.parse(data);
for (var i = 0; i < messages.length; i++) {
messages[i].findUser = '';
}
// Do this last
myApp.messages = messages;
}