【发布时间】:2017-11-07 13:41:48
【问题描述】:
我可以使用以下代码更改数组。
new Vue({
el: '#app',
data: {
students: [
{name: "derek"},
{name: "frank"}
],
},
methods: {
changeStudents: function() {
this.students = [
{name: "aa"},
{name: "bb"}
];
}
}
});
<script src="https://cdnjs.cloudflare.com/ajax/libs/vue/2.3.4/vue.min.js"></script>
<div id="app">
<button @click="changeStudents">Click Me</button>
<p v-for="student in students">{{student.name}}</p>
</div>
但是当我尝试在 Google Firebase 方法中更改数组时,它不起作用。由于某种原因,它不知道this.students 可用。 this.students 应该可以通过任何方法访问,至少我认为。这可能是指针问题还是类似的问题?
new Vue({
el: '#app',
data: {
students: [
{name: "derek"},
{name: "frank"}
],
},
methods: {
changeStudents: function() {
var newStudents = [];
// Get the students from the database
studentsCol.get().then(function(querySnapshot) {
querySnapshot.forEach(function(doc) {
var student = doc.data();
newStudents.push(student);
// line below doesn't work because it doesn't know this.students
// this.students.push(student);
}
});
});
// doesn't work either
this.students = newStudents;
}
}
});
<script src="https://cdnjs.cloudflare.com/ajax/libs/vue/2.3.4/vue.min.js"></script>
<div id="app">
<button @click="changeStudents">Click Me</button>
<p v-for="student in students">{{student.name}}</p>
</div>
【问题讨论】: