Javascript 角通用干码
让我们考虑以下“项目”模块 服务Javascript 角通用干码,javascript,angularjs,dry,Javascript,Angularjs,Dry,让我们考虑以下“项目”模块 服务 angular.module('srvc.projects',[]).factory('Projects_fctr',function($resource){ return $resource('api/projects/:id',{id:'@_id'},{ update: { method: 'PUT' }, query: { method: 'GET', isArray: true }, create: { method: 'POS
angular.module('srvc.projects',[]).factory('Projects_fctr',function($resource){
return $resource('api/projects/:id',{id:'@_id'},{
update: { method: 'PUT' },
query: { method: 'GET', isArray: true },
create: { method: 'POST'}
});
});
和下面的控制器
Projects_fctr.query( function (data) {
if (!data.error) {
$scope.projects = data;
notify({ messageTemplate: $scope.notifyMsg.ReS, classes: 'alert-success', duration: 3000});
} else {
notify({ messageTemplate: $scope.notifyMsg.ReE, classes: 'alert-warning'});
}
});
两者都很好用
我注意到,如果我想创建一个“clients”模块,我必须复制上面的所有代码,并将引用从“projects”更改为“clients”
结果是相同服务/控制器有多个“版本”,每个模块一个
有没有办法制作一个可供“任意”模块使用的干式服务和控制器。这将真正减少所需的代码量
我也在使用ui路由器
有什么想法吗?如果您有相同服务的多个“版本”,那么它就不是一项服务了!多个我指的是'srvc.projects'和'srvc.clients'和'srvc.contacts'等。每个模块都有一个服务。您可以处理服务中的成功/错误,然后使用回调将数据发送到控制器。