如何让AngularJS工厂保持干净

时间:2015-01-29 13:06:07

标签: angularjs dry angularjs-factory

在我的AngularJS应用程序中,我有很多不同的工厂可以提出不同的REST请求。

回过头来,我意识到他们都使用了很多相似的代码。这对于DRYness来说是可怕的,并且使得这个更加混乱,然后更长时间。

例如,他们都对cache s执行相同的检查:

        // Cache stuff
        var cacheName = 'projects.rsrc.getProjectUsersService';
        var cache = cacheAppFactory.get(cacheName);
        if(clearCache) {
            cacheAppFactory.clear(cacheName);
        }

我想简单地将此代码放在一个函数中,该函数需要cacheName并从每个工厂调用它。

有没有办法从工厂内部引用一些“全局”代码或函数?

1 个答案:

答案 0 :(得分:0)

您可以扩展缓存工厂的功能,以注册使用缓存工厂缓存功能的所有其他工厂。

然后在缓存工厂中创建一个方法,该方法将返回所有已注册工厂的缓存。

这可能就像你可以得到的DRY一样,类似的原则可以应用于你认为重复过多的所有事情,而不仅仅是缓存内容。