这几天写angularjs人都写疯了,但是看到服务这个东西还是很有趣的
最开始想和后台的java代码交互,我用的http但是感觉这样写的话,代码量会非常大于是,看到书上的service方式
在最近的一个测试程序中将$resource这个东西封到service里面,这样自定的写service
如此让前台写服务变得非常的灵活,
举个例子:
app.factory('ModuleService', function($resource)
{
var moduleService = $resource('/DDD3/moduleddd/:action', {});
moduleService.saveModule=function(module,sucesscb,errorcb)
{
moduleService.save({action:"saveModule"},module,sucesscb,errorcb);
};
moduleService.deleteModule=function(moduleId,sucesscb,errorcb)
{
moduleService.save({action:"deleteModule"},moduleId,sucesscb,errorcb);
};
moduleService.updateModule=function(module,sucesscb,errorcb)
{
moduleService.save({action:"updateModule"},module,sucesscb,errorcb);
};
moduleService.findModuleById=function(moduleId,sucesscb,errorcb)
{
moduleService.get({action:"findModuleById",moduleId:moduleId},sucesscb,errorcb);
};
moduleService.findModules=function(sucesscb,errorcb)
{
moduleService.query({action:"findModules"},sucesscb,errorcb);
};
return moduleService;
})
这里和后台交互封装的一些CRUD的方法
app.controller('HeadController',function($rootScope,$scope,ModuleService){
ModuleService.findModules(findModulesResult,findModulesFault);
function findModulesResult(data)
{
var systems = new Array();
for(var i = 0 ; i < data.length; i ++)
{
if(data[i].moduleType == '是')
{
systems.push(data[i]);
}
}
$scope.systems = systems;
}
function findModulesFault()
{
alert("加载失败!");
}
});
这里通过两个回调函数对service里得到的数据进行操作
越来越觉得angularjs有意思了