【发布时间】:2018-04-17 09:09:21
【问题描述】:
我知道 Firebase 异步返回数据,所以我实际上将变量放在了once() 函数中。但我无法访问变量
叫 whatever。在写这个问题时,我还想我可以尝试将 firebase 数据直接设置为 data()。
我的问题是如何在 VueJS data() 函数中传递数据,以便当用户刷新或重新登录数据时,在这两个不同选项中填充输入字段?
<template lang="html">
<div class="">
<label for="">Name</label>
<input id="nameId" type="text" v-model="name" />
</div>
</template>
export default {
name: 'app',
data () {
return {
name: '',
}
},
methods:{
var whatever = [];
var query = dbRef.orderByKey();
query.once('value')
.then(function (snapshot) {
snapshot.forEach(function(childSnapshot) {
var childData = childSnapshot.child('name').val();
this.whatever.push(childData);
// Option 1: use out of scope
this.name = whatever;
// Option 2: directly populate data
this.name = childData;
});
});
}
【问题讨论】:
-
这不是有效的 javascript。
-
这没有多大帮助:(
-
您没有在方法块中定义方法。现在方法块中的所有代码,将其包装在一个命名函数中。但这仍然需要在某些时候被调用。所以要么从挂载的生命周期方法中调用它,要么不使用方法,使用计算属性。