2015-11-20 31 views
0

我有問題如何從服務和控制器獲取數據。現在我想在我的網絡應用中實現CRUD。 這是我的服務。從服務和控制器使用pouchdb獲取allDocs

application.service('Arrears', [ 
function() 
{ 
    var db = new PouchDB('localhost:5984/arrears'); 

    return { 
     allDocs: function (startKey, endKey, desc) { 
      db.allDocs({startkey: startKey, endkey: endKey, descending: desc}) 
       .then(function (result) { 
        console.log(result, 'Results from allDocs'); 
        return result; 
       }) 
     }, 
    } 
} 

]);

這是我的控制器。

application.controller('ArrearsManagementAllController', ['$location', '$mdSidenav', '$scope', 'Arrears', 
function($location, $mdSidenav, $scope, Arrears) 
{ 
    $scope.items= Arrears.allDocs(); 
} 

]);

和我的html這樣。

<md-list-item md-virtual-repeat="i in items | orderBy:'status'" ng-click="read(id)"> 
    <b md-highlight-flags="gi"> 
    Status :</b> {{i.status}} 
    <b md-highlight-text="query.$" style="color:blue" 
     md-highlight-flags="gi"> 
     {{i.owner_name}} 
     ({{i.owner_id}}) 
    </b> 
    <p class="md-caption" 
     md-highlight-text="query.$"> 
     {{i.address}} 
    </p> 
    <p class="md-caption" 
     md-highlight-text="query.$"> 
     {{i.house_no}} - Floor {{i.floor}} -, Lot {{i.lot}} -, Block {{i.block}} - {{i.locality}} 
    </p> 

我是新的angularjs和pouchdb。請幫幫我。

回答

0

問題是allDocs() doens't沒有返回文檔列表;它返回一個承諾的文件列表。退房this post on promises的概述,但基本上你需要做的:

application.service('Arrears', [ 
function() 
{ 
    var db = new PouchDB('localhost:5984/arrears'); 

    return { 
     allDocs: function (startKey, endKey, desc) { 
      return db.allDocs({startkey: startKey, endkey: endKey, descending: desc, include_docs: true}) 
     }, 
    } 
} 
]); 

application.controller('ArrearsManagementAllController', ['$location', '$mdSidenav', '$scope', 'Arrears', 
function($location, $mdSidenav, $scope, Arrears) 
{ 
    $scope.items = []; 
    Arrears.allDocs().then(function (res) { 
     $scope.items = res.rows.map(function (row) { 
     return row.doc; 
     }); 
    }).catch(console.log.bind(console)); 
} 

希望幫助!

+0

感謝您的幫助。現在工作。 –