Angularjs 角度平移更新平移表

Angularjs 角度平移更新平移表,angularjs,angular-translate,Angularjs,Angular Translate,我已经创建了一个指令,它包装了角度翻译,也可以转换为输入字段,便于管理员用户进行翻译 当我更新一个翻译时,我真的不想在更新数据库中的一行之后从数据库中加载整个翻译表,因为它看起来效率非常低 我的问题是,在angular translate API中似乎找不到任何允许我访问前端缓存的内容。我希望在成功更新1行之后,直接修改翻译映射,而不必为我的翻译的整个映射而麻烦DB 我尝试过的东西:$translationCache、$translateLocalStorage、$translateCookie

我已经创建了一个指令,它包装了角度翻译,也可以转换为输入字段,便于管理员用户进行翻译

当我更新一个翻译时,我真的不想在更新数据库中的一行之后从数据库中加载整个翻译表,因为它看起来效率非常低

我的问题是,在angular translate API中似乎找不到任何允许我访问前端缓存的内容。我希望在成功更新1行之后,直接修改翻译映射,而不必为我的翻译的整个映射而麻烦DB

我尝试过的东西:$translationCache、$translateLocalStorage、$translateCookieStorage

谁能给我点化一下吗

另外,作为奖励,我想知道是否有人知道他们可以在角度平移中在哪里公开平移映射。
注意,我不希望在控制器中使用$translate中的转换值,因为它已经被插值了。

源代码中的简短视图无法提供简单的方法。我最终解决了这个问题,使用自己的提供者缓存$translateProvider.translations中的引用:

app.provider('translationHelper', function () {
    this.translations = {};

    this.$get = function () {
        return {
            translations: this.translations
        }
    };
});
在你的应用程序中

app.config([
    '$translateProvider',
    'translationHelperProvider',
function (
    $translateProvider,
    translationHelperProvider
) {
    translationHelperProvider.translations = $translateProvider.translations();
}]);
以后像这样使用它

app.component('myComponent', {
    templateUrl: 'views/components/myComponent.html',
    controller: [
        'translationHelper',
    function (
        translationHelper
    ) {
        // query translation
        var translation = translationHelper.translations['de']["Your.Key.Here"];
        // modify translation
        translationHelper.translations['de']["Your.Key.Here"] = 'A new value';
    }]
});

或者,您可以修改角度平移源,并通过其$get方法从提供程序访问“translations”。

在配置中,您执行了translationHelperProvider.translations=$translateProvider.translations;当通过延迟加载更新Transitions时,它会更新我们的translationHelper.translations吗?