ariaNgAssetsCacheService.js 1.5 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556
  1. (function () {
  2. 'use strict';
  3. angular.module('ariaNg').provider('ariaNgAssetsCacheService', [function () {
  4. var assetsRoot = {};
  5. var languageAssetsPrefix = 'languages.';
  6. var getAsset = function (path) {
  7. var parts = path.split('.'),
  8. result = assetsRoot;
  9. for (var i = 0; i < parts.length; i++) {
  10. if (angular.isUndefined(result[parts[i]])) {
  11. return null;
  12. }
  13. result = result[parts[i]];
  14. }
  15. return result;
  16. };
  17. var setAsset = function (path, value) {
  18. var parts = path.split('.'),
  19. result = assetsRoot;
  20. for (var i = 0; i < parts.length - 1; i++) {
  21. if (angular.isUndefined(result[parts[i]])) {
  22. result[parts[i]] = {};
  23. }
  24. result = result[parts[i]];
  25. }
  26. result[parts[parts.length - 1]] = value;
  27. };
  28. this.getLanguageAsset = function (languageName) {
  29. return getAsset(languageAssetsPrefix + languageName);
  30. };
  31. this.setLanguageAsset = function (languageName, languageContent) {
  32. setAsset(languageAssetsPrefix + languageName, languageContent);
  33. };
  34. this.$get = function () {
  35. var that = this;
  36. return {
  37. getLanguageAsset: function (languageName) {
  38. return that.getLanguageAsset(languageName);
  39. }
  40. }
  41. };
  42. }]);
  43. }());