角公共服务DRY代码

时间:2015-10-02 21:39:05

标签: 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: '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'});
    }

});

两者都很好。

我注意到如果我想创建一个“客户”模块,我必须复制上述所有代码并将引用从“项目”更改为“客户”。

结果是具有相同服务/控制器的多个“版本”,每个模块一个。

有没有办法制作干货服务&可以由“任何”模块使用的控制器。它确实会减少所需的代码量。

我也在使用ui-router。

有什么想法吗?

0 个答案:

没有答案