使用 pouchdb 从服务和控制器获取 allDocs
get allDocs from service and controller using pouchdb
我对如何从服务和控制器获取数据有疑问。现在我想在我的网络应用程序中实施 CRUD。
这是我的服务。
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 的新手。请帮我。
问题是 allDocs()
没有 return 文件列表;它return是对文档列表的承诺。查看 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));
}
希望对您有所帮助!
我对如何从服务和控制器获取数据有疑问。现在我想在我的网络应用程序中实施 CRUD。 这是我的服务。
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 的新手。请帮我。
问题是 allDocs()
没有 return 文件列表;它return是对文档列表的承诺。查看 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));
}
希望对您有所帮助!