如何在所有ng点击事件AngularJS上启动一个方法
How to launch a method on all ng-click events AngularJS
我在Node.js中制作了一个web应用程序,让用户管理他们的mongoDB数据库。我有几个点击事件,它们执行CRUD操作来更改数据库的状态。每次点击ng时,我都会调用相应的函数来执行CRUD操作。问题是,在这些函数中,我调用了一个名为refresh的方法,该方法会更新页面,使其与当前数据库信息匹配。有没有办法,只要一个ng点击事件结束,我就可以挂起要调用的刷新函数?
示例
$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
})
相关文章:
- 在javaservlet doPost方法中启动线程时,无法返回异常消息
- 如何在所有ng点击事件AngularJS上启动一个方法
- 在变量中保存值的最佳方法是在应用程序关闭后使用,然后使用apachecordova在android中重新启动
- 使用一个方法在c#中启动其他方法
- JavaScript - 自动启动方法
- jqGrid 保存方法在错误后不会启动
- asmx中Web方法的Ajax方法未启动
- 无法调用方法'启动'使用Backbone.history.start()和QUnit的未定义错误
- 有没有一种方法可以使触摸启动事件不会触发点击事件
- 除了child_process中的方法之外,还有其他方法可以启动进程吗
- 在网页上设置GIF动画-任何重新启动它们的方法
- 非异步启动AJAX请求的替代方法
- 如何使用对象声明启动特定方法
- Vue.js 1.0方法未在更改选择时启动
- SignalR调用方法:必须先启动连接,然后才能发送数据
- 有没有一种方法可以在页面加载时自动启动css过渡或动画
- 启动两个脚本的正确方法是什么:一个加载数据,另一个操作样式
- 是否有一种方法可以在启动同步ajax调用之前强制执行javascript代码
- 确定Tomcat已经用node.js启动的最好方法是什么?
- 是否有一种方法可以在ajax响应后启动脚本