Angular-UI Bootstrap组件实现警报功能
Angular-UIBootstrap提供了许多组件,从流行的的Bootstrap项目移植到Angular指令(显著的减少了代码量)。如果你计划在Angular应用中使用Bootstrap组件,我建议细心检查。话虽如此,直接使用Bootstrap,应该也是可以工作的。
Angularcontroller可以共享service的代码。警报就是把service代码共享到controller的很好用例之一。
Angular-UIBootstrap文档提供了下面的例子:
view
{{alert.msg}} AddAlert
controller
functionAlertDemoCtrl($scope){
$scope.alerts=[
{type:'error',msg:'Ohsnap!Changeafewthingsupandtrysubmittingagain.'},
{type:'success',msg:'Welldone!Yousuccessfullyreadthisimportantalertmessage.'}
];
$scope.addAlert=function(){
$scope.alerts.push({msg:"Anotheralert!"});
};
$scope.closeAlert=function(index){
$scope.alerts.splice(index,1);
};
}
鉴于我们要在app中的不同的控制器中创建警报,并且跨控制器的代码不好引用,我们将要把它移到service中。
alertService
'usestrict';
/*services.js*/
//don'tforgettodeclarethisservicemoduleasadependencyinyourmainappconstructor!
varappServices=angular.module('appApp.services',[]);
appServices.factory('alertService',function($rootScope){
varalertService={};
//createanarrayofalertsavailableglobally
$rootScope.alerts=[];
alertService.add=function(type,msg){
$rootScope.alerts.push({'type':type,'msg':msg});
};
alertService.closeAlert=function(index){
$rootScope.alerts.splice(index,1);
};
returnalertService;
});
view
{{alert.msg}}
最后,我们需要将alertService's中的closeAlert()方法绑定到$globalScope。
controller
functionRootCtrl($rootScope,$location,alertService){
$rootScope.changeView=function(view){
$location.path(view);
}
//rootbindingforalertService
$rootScope.closeAlert=alertService.closeAlert;
}
RootCtrl.$inject=['$scope','$location','alertService'];
我不完全赞同这种全局绑定,我希望的是直接从警报指令中的closedata属性中调用service方法,我不清楚为什么不这样来实现。
现在创建一个警报只需要从你的任何一个控制器中调用alertService.add()方法。
functionArbitraryCtrl($scope,alertService){
alertService.add("warning","Thisisawarning.");
alertService.add("error","Thisisanerror!");
}
总结
以上所述是小编给大家介绍的Angular-UIBootstrap组件实现警报功能,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对毛票票网站的支持!