如何使用控制器从服务中使用承诺获取ID
how to get id using promise from service using controller
大家好,我在获取 ID 时遇到了问题。现在我无法从服务中获取“_id”。
这是我的服务
application.service('Arrears', [
function()
{
var db = new PouchDB('localhost:5984/arrears');
return {
get: function (_id) {
return db.get(_id)
.then(function (object) {
return db.remove(object)
.catch(function (err) {
console.log('error: ' + err); // isn't executed
});
})
.catch(function (err) {
console.log('error: ' + err); // isn't executed
});
},
}
}
]);
插入数据是可以的。
现在,这是我的控制器。
application.controller('ArrearsManagementAllController', ['$location', '$mdSidenav', '$scope', 'Arrears',
function($location, $mdSidenav, $scope, Arrears)
{
$scope.id = Arrears.get();
}
]);
最后一个是我的模板
<md-list-item
md-virtual-repeat="i in items"
ng-click="read(id)">
点击阅读后,我的link显示如下
localhost:8080/arrears_management/all/read/undefined
我的代码无法读取 ID。
请解决我的问题。因为我是新手 angularjs 和 pouchdb.
现在控制台显示这样的错误:-
GET localhost/arrears/_id?_nonce=1447904157421 404 (Object Not Found)
你的代码有问题:
1.
get: function (_id) {
var id = get('_id')
},
没有return任何东西,并且
2. get
正在调用未定义的 get 方法
3. 你没有 _id
任何地方可以 return 它。也许您想在从数据库中获取后将其放入服务变量中?
或,您可能想这样做:
get: function (_id) {
var id = db.get('_id');
return id;
},
注意 db.get 而不仅仅是 get
和非常有用的 return。这可能取决于数据库引擎,但是...
编辑
即使在控制器中你也有一个大问题:$scope.id = Arrears.get
做了你想要的更复杂的事情。您只需要将其替换为:
$scope.id = Arrears.get();
为了获取 id 的值,因为您没有调用 get
方法...
大家好,我在获取 ID 时遇到了问题。现在我无法从服务中获取“_id”。 这是我的服务
application.service('Arrears', [
function()
{
var db = new PouchDB('localhost:5984/arrears');
return {
get: function (_id) {
return db.get(_id)
.then(function (object) {
return db.remove(object)
.catch(function (err) {
console.log('error: ' + err); // isn't executed
});
})
.catch(function (err) {
console.log('error: ' + err); // isn't executed
});
},
}
}
]);
插入数据是可以的。 现在,这是我的控制器。
application.controller('ArrearsManagementAllController', ['$location', '$mdSidenav', '$scope', 'Arrears',
function($location, $mdSidenav, $scope, Arrears)
{
$scope.id = Arrears.get();
}
]);
最后一个是我的模板
<md-list-item
md-virtual-repeat="i in items"
ng-click="read(id)">
点击阅读后,我的link显示如下
localhost:8080/arrears_management/all/read/undefined
我的代码无法读取 ID。 请解决我的问题。因为我是新手 angularjs 和 pouchdb.
现在控制台显示这样的错误:-
GET localhost/arrears/_id?_nonce=1447904157421 404 (Object Not Found)
你的代码有问题:
1.
get: function (_id) {
var id = get('_id')
},
没有return任何东西,并且
2. get
正在调用未定义的 get 方法
3. 你没有 _id
任何地方可以 return 它。也许您想在从数据库中获取后将其放入服务变量中?
或,您可能想这样做:
get: function (_id) {
var id = db.get('_id');
return id;
},
注意 db.get 而不仅仅是 get
和非常有用的 return。这可能取决于数据库引擎,但是...
编辑
即使在控制器中你也有一个大问题:$scope.id = Arrears.get
做了你想要的更复杂的事情。您只需要将其替换为:
$scope.id = Arrears.get();
为了获取 id 的值,因为您没有调用 get
方法...