我正在将PouchDB数据库中的allDocs()读取到AngularJS变量中:var db = pouchService.db;$scope.recordlist = db.allDocs({startkey: 'move_', endkey: 'move_\uffff', include_docs: true});console.log($scope.recordlist);我注意到它返回了一个promise,当我尝试使用ng-repeat读取数组(以及数组中对象的属性)时,它实际上无法访问结果,我想是因为它们是深深嵌套的。<div class="row msf-row" ng-repeat="record in recordlist | filter: shouldShow" ng-class="{ 'msf-cancelled': record.cancelled, 'msf-commented' : record.comment}"> <div class="col-md-1">{{record.time}}</div></div>有什么办法可以将这个承诺变成一个简单的对象数组?我也已在应用程序中加载了LoDash,我不知道它是否有用。 最佳答案 在实现诺言之后分配数组(如果发生错误,则显示错误):$q.when(db.allDocs({startkey: 'move_', endkey: 'move_\uffff', include_docs: true})) .then(function (recordlist) { $scope.recordList = recordList; console.log($scope.recordlist); }) .catch(function (error) { console.error(error); });更新:正如Matt在评论中指出的那样,如果您未使用angular-pouch angular-pouchdb包装器,则需要将操作包装在$scope.$apply()中以触发摘要周期,或者首先使用。我认为将promise转换为角度promise还可以解决日志错误,但是您应该始终处理错误(向用户显示消息)。您当然可以使用全局错误处理程序来执行此操作。
10-06 03:41