使用Firestore中的数据更新angularjs ng-repeat

时间:2018-08-24 10:07:40

标签: angularjs google-cloud-firestore

HTML

<li ng-repeat="name in $ctrl.names">{{name}}</li>

下面的代码从firestore数据库中检索数据,并且正在更新名列数组。但是,视图未填充新数据。我已经广泛阅读了关于stackoverflow和其他问题的问题,但没有成功。有人可以帮忙吗?谢谢。

let names = [];
this.names = names;
listRef.get()
.then(function(doc) {
  if (doc.exists) {
    names = doc.data().listOfNames;
  }
}

2 个答案:

答案 0 :(得分:1)

找到了解决方法。将要在$ scope。$ apply()中更新的变量包装起来。这告诉angularjs监视$ scope.name上的更新,这是以前没有做的,因为$ scope.names变量是在angularjs上下文之外进行更新的。

$scope.names = [];
listRef.get()
.then(function(doc) {
  if (doc.exists) {
    $scope.$apply(function () {
      $scope.names = doc.data().listOfNames;
    }
  }
}

答案 1 :(得分:0)

您可以试试吗? 我猜你在这里失去了数组参考。

let names = [];
$ctrl = this;
$ctrl.names = names;
listRef.get()
.then(function(doc) {
  if (doc.exists) {
    $ctrl.names = doc.data().listOfNames;
  }
}