57 lines
1.5 KiB
JavaScript
57 lines
1.5 KiB
JavaScript
(function () {
|
|
'use strict';
|
|
|
|
angular.module('ariaNg').provider('ariaNgAssetsCacheService', [function () {
|
|
var assetsRoot = {};
|
|
var languageAssetsPrefix = 'languages.';
|
|
|
|
var getAsset = function (path) {
|
|
var parts = path.split('.'),
|
|
result = assetsRoot;
|
|
|
|
for (var i = 0; i < parts.length; i++) {
|
|
if (angular.isUndefined(result[parts[i]])) {
|
|
return null;
|
|
}
|
|
|
|
result = result[parts[i]];
|
|
}
|
|
|
|
return result;
|
|
};
|
|
|
|
var setAsset = function (path, value) {
|
|
var parts = path.split('.'),
|
|
result = assetsRoot;
|
|
|
|
for (var i = 0; i < parts.length - 1; i++) {
|
|
if (angular.isUndefined(result[parts[i]])) {
|
|
result[parts[i]] = {};
|
|
}
|
|
|
|
result = result[parts[i]];
|
|
}
|
|
|
|
result[parts[parts.length - 1]] = value;
|
|
};
|
|
|
|
this.getLanguageAsset = function (languageName) {
|
|
return getAsset(languageAssetsPrefix + languageName);
|
|
};
|
|
|
|
this.setLanguageAsset = function (languageName, languageContent) {
|
|
setAsset(languageAssetsPrefix + languageName, languageContent);
|
|
};
|
|
|
|
this.$get = function () {
|
|
var that = this;
|
|
|
|
return {
|
|
getLanguageAsset: function (languageName) {
|
|
return that.getLanguageAsset(languageName);
|
|
}
|
|
}
|
|
};
|
|
}]);
|
|
}());
|