Я создал веб-приложение в Node.js, которое позволяет пользователям управлять своей базой данных mongoDB. У меня есть несколько событий click, которые выполняют CRUD-действия, которые изменяют статус базы данных. На каждом ng-click я вызываю соответствующую функцию для выполнения CRUD-действия. Проблема в том, что в каждой из этих функций я вызываю метод с именем refresh, который обновляет страницу, чтобы она соответствовала текущей информации о базе данных. Есть ли способ, я могу просто подключить функцию обновления, которая будет вызываться всякий раз, когда событие ng-click закончилось?
Примеры
$scope.dropDB = function (DB) {
$http.post('/dropDB', JSON.stringify({ 'DB': DB })).success(function (response) {
refresh();
});
};
$scope.addDB = function (DB) {
try{
var objson = JSON.stringify({ 'DB': DB }) ;
$http.post('/addDB', objson).success(function (response) {
console.log("DB Added: ");
refresh();
});
}catch(ex){
alert("Not a valid input type");
}
};
Создайте фабрику обертки для вашего http
вызова
['$http', function($http) {
return function(method, route, body) {
var args = method === 'POST' ? [route, body] : [route];
return new Promise(function(resolve, reject) {
return $http[method].apply(this, args).then(function(res) {
refresh();
resolve(res)
}).catch(function(err) {
reject(err);
})
});
}
}];
Затем вы можете использовать его в своем контроллере
myFactory('POST', '/database', {foo: 'bar'}).then(function(res) {
// at this point refresh() was already called
})
ng-click
вы имеете в виду, когда$http.post
?