Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/409.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript HTML中的Vue JS无法识别添加的对象和属性_Javascript_Json_Data Binding_Vue.js_V For - Fatal编程技术网

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;
}