Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/450.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 角通用干码_Javascript_Angularjs_Dry - Fatal编程技术网

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'等。每个模块都有一个服务。您可以处理服务中的成功/错误,然后使用回调将数据发送到控制器。