我正在尝试将一个角度服务属性公开给$ scope,要在视图中使用它我的代码看起来像这样
/**API Post SERVICE for user login*/
function login(username,password){
return $http.post('/api/login/',{
username:username,
password:password
}).then(loginSuccessFn, loginErrorFn);
function loginSuccessFn(data, status, headers, config){
Authentication.setAuthenticatedAccount(data.data);
window.location = '/';
}
function loginErrorFn(data, status, headers,config){
console.error("Epic Failure");
}
}
所以当$ http方法返回错误并调用函数loginErrorFn()时,响应数据将在视图中传递,所以我可能会引发一个引导警报
我怎样才能实现这个目标?
答案 0 :(得分:0)
在服务中注入$ rootScope,在成功和错误的情况下发出事件
$rootScope.$emit('httpCall', 'success');
$rootScope.$emit('httpCall', 'failure');
并在控制器内处理这些事件
$rootScope.$on('httpCall', function(p){scope.isSuccess = p;})
现在你应该在你的视图中引用你的范围变量isSuccess来显示警告。
答案 1 :(得分:0)
在服务中注入$ rootScope时:
$rootScope.$emit('httpCall', 'success');
$rootScope.$emit('httpCall', 'failure');
当你抓住它时:
$rootScope.$on('httpCall', function(e,p){scope.isSuccess = p;})
$ rootScope。$ on('httpCall',function(e,p){}有两个参数