2015-09-25 31 views
2

我有以下功能從服務閱讀:NG重複填充唯一窗口後點擊 - AngularJS&PouchDB

var db = pouchService.db; 
db.allDocs({startkey: 'move_', endkey: 'move_\uffff', include_docs: true}) 
.then(function (data) { 
    $scope.recordlist = data; 
    console.log($scope.recordlist); 
}); 

服務:

angular.module('msfLogger').service('pouchService', PouchService); 

function PouchService() { 
    var self = this; 
    self.db= new PouchDB('FleetDB'); 
}; 

在前端,我想從$scope.recordlist填充ng-repeat,但現在,當我加載頁面時,ng-repeat將爲空,當我單擊頁面上的任何位置時,它將被填充。

此外,當我在數據庫中添加一個新項目時,它只會在頁面重新加載並單擊窗口後顯示,而不是自動顯示。

<div class="row msf-row" ng-repeat="record in recordlist.rows"> 
    <div class="col-md-1">{{record.doc.time}}</div> 
    <div class="col-md-1"><strong>{{record.doc.car}}</strong></div> 
    <div class="col-md-2">{{record.doc.driver}}</div> 
    <div class="col-md-2">{{record.doc.from}}</div> 

    ... 
</div> 

我錯過了什麼?

+0

你缺少'$ apply' – Grundy

+0

@Grundy,我必須裝在doc [角pouchdb(https://github.com/angular-pouchdb/angular-pouchdb)。我認爲這是解決這個問題。 –

+0

所以你可以提供工作plunkr或jsfiddle?您的代碼似乎很好 – Grundy

回答

1

我認爲,即使您將angular-pouchdb作爲庫,您也需要將其注入到服務中,否則,您正在使用全局PouchDB庫,並且應該手動管理$scope.$apply

angular.module('msfLogger', ['pouchdb']).service('pouchService', PouchService); 

function PouchService(pouchDB) { 
    var self = this; 
    self.db= pouchDB('FleetDB'); 
}; 
+0

它給了我'錯誤:[ng:areq] http://errors.angularjs.org/1.3。 0-rc.4/ng/areq?p0 = LoggerCtrl&p1 = not%20a%20function%2C%20got%20undefined' –

+0

@EricMitjans它看起來像是你的'LoggerCtrl'中的東西,與pouchdb無關。 – 7ictor