Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/meteor/3.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 Vue在从Meteor回调获取数据之前选择列表渲染_Javascript_Meteor_Callback_Vue.js_Vuejs2 - Fatal编程技术网

Javascript Vue在从Meteor回调获取数据之前选择列表渲染

Javascript Vue在从Meteor回调获取数据之前选择列表渲染,javascript,meteor,callback,vue.js,vuejs2,Javascript,Meteor,Callback,Vue.js,Vuejs2,我正在尝试从meteor调用填充我的事件数组,以便它显示在选择列表中。Meteor函数“get.comming”返回一个JSON对象数组,但我认为选择列表是在填充事件数组之前呈现的 是否有方法重新渲染选择框或仅在填充事件数组后渲染它 <template> <div class="container"> <select v-model='eventId'> <option v-for='event in ev

我正在尝试从meteor调用填充我的事件数组,以便它显示在选择列表中。Meteor函数“get.comming”返回一个JSON对象数组,但我认为选择列表是在填充事件数组之前呈现的

是否有方法重新渲染选择框或仅在填充事件数组后渲染它

<template>
    <div class="container">
        <select v-model='eventId'>
            <option v-for='event in events'>{{JSON.stringify(event)}}</option>
        </select>
    </div>
</template>

<script>
    export default {
        data() {
            return {
                eventId: "",
                events: [],
            }
        },

        created() {
            this.getItems();
        },

        methods: {
            getItems() {
                console.log("getting items");
                Meteor.call('get.upcoming', function(err, res) {
                    if (err) {
                        console.log(err);
                    } else {
                        events = res;
                        console.log(events);
                    }
                })
            }
        }
    }
</script>

<style>

</style>

{{JSON.stringify(事件)}
导出默认值{
数据(){
返回{
事件ID:“”,
事件:[],
}
},
创建(){
这是getItems();
},
方法:{
getItems(){
console.log(“获取项目”);
Meteor.call('get.comming',函数(err,res){
如果(错误){
控制台日志(err);
}否则{
事件=res;
console.log(事件);
}
})
}
}
}

使用
this.events=res事件的响应

另外,在回调中使用箭头函数,以便它可以通过
this
访问Vue实例

getItems() {
  console.log('getting items');
  Meteor.call('get.upcoming', (err, res) => {
    if (err) {
      console.log(err);
    } else {
      this.events = res;
      console.log(this.events);
    }
  })
}

使用
this.events=res事件的响应

另外,在回调中使用箭头函数,以便它可以通过
this
访问Vue实例

getItems() {
  console.log('getting items');
  Meteor.call('get.upcoming', (err, res) => {
    if (err) {
      console.log(err);
    } else {
      this.events = res;
      console.log(this.events);
    }
  })
}
  • 要重新输入选择框,只需设置双向绑定到选择框的数据数组,即可重新输入给定的选择框。加载网页后,Vue模板定义中
    data()
    方法中的所有注册变量都可以作为模板类变量使用,其内容可以选择双向绑定到组件
  • if(!error)this.events=newEvents

  • 如果您希望仅在从Meteor方法接收JSON对象并将其填充到events数组中之后才显示选择框,那么只需将Vue条件绑定设置为布尔值,以在加载数据后显示HTML DOM元素
  • 
    返回{
    数据(){
    返回{
    数据加载:false
    }
    }
    asyncMethod(){this.dataLoaded=true;}
    };
    
  • 要重新输入选择框,只需设置双向绑定到选择框的数据数组,即可重新输入给定的选择框。加载网页后,Vue模板定义中
    data()
    方法中的所有注册变量都可以作为模板类变量使用,其内容可以选择双向绑定到组件
  • if(!error)this.events=newEvents

  • 如果您希望仅在从Meteor方法接收JSON对象并将其填充到events数组中之后才显示选择框,那么只需将Vue条件绑定设置为布尔值,以在加载数据后显示HTML DOM元素
  • 
    返回{
    数据(){
    返回{
    数据加载:false
    }
    }
    asyncMethod(){this.dataLoaded=true;}
    };