如果您的useStaticFilesLoader
定义中有多个规则,其中一个规则是缺少的文件夹,则即使不使用丢失文件中包含的转换,角度转换也会失败。
例如,我用错误的prompts
名称替换了实际的foo
文件夹名称。如果恢复正确的文件夹名称,则一切正常。
$translateProvider.useStaticFilesLoader({
files: [{
prefix: 'lang_',
suffix: '.json'
}, {
prefix: 'foo/lang_',
suffix: '.json'
}]
});
是否可以忽略丢失的文件并继续使用其他文件?
答案 0 :(得分:0)
一个可能的解决方案是使用custom loader代替标准的静态加载器。
app.factory('translationLoader', function ($q, $http) {
return function (options) {
var deferred = $q.defer(),
translations;
$http.get('lang_' options.key + '.json')
.then(function (res) {
translations = res.data;
$http.get('subfolder/lang_' + options.key + '.json')
.then(function (res) {
translations = translations.concat(res.data);
}, function () {
deferred.resolve(translations);
})
.finally(function () {
deferred.resolve(translations);
});
}, function () {
deferred.reject(options.key);
});
return deferred.promise;
};
})
.config([
'$translateProvider',
function ($translateProvider) {
$translateProvider
.useSanitizeValueStrategy(null)
.useLoader('translationLoader');
}
]);