Angular-translate:当我更改语言时,如何刷新内容(api请求)?

时间:2017-05-02 15:51:07

标签: angularjs angular-translate

我是AngularJS的新手,我试着了解如何使用它。我使用angular-translate来翻译我的网站并且它可以工作,但是我对数据库中的动态内容有疑问。

我通过api请求获取动态内容。我想"重做"使用良好语言的请求,以良好的语言重新加载内容。

我抓住" translateChangeSuccess"事件,但我怎么能重做"重做"以前的api请求?

非常感谢你的帮助:) ps:对不起我的英文

编辑:

$ awk -F'[,:]' '$4==pt+10 && $NF==p {pt=$4; pl=$0; next} 
                pl                  {print pl} 
                                    {pt=$4;p=$NF}1' file

2017-05-01,00:00:01,GRP1,GRP1,TOTAL,3
2017-05-01,00:00:51,GRP1,GRP1,TOTAL,3
2017-05-01,00:01:01,GRP1,GRP1,TOTAL,2

2 个答案:

答案 0 :(得分:0)

translateChangeSuccess事件中,再次使用所需语言的当前参数执行请求(暗示服务器根据语言向您发送不同的内容)

我无法给你一个可靠的例子,因为有很多方法可以管理它。

使用某些代码可以获得更好的解释。

答案 1 :(得分:0)

好的,所以我发现了怎么做。我只是通过服务(apiResolver)再次向api询问数据

test.module.js:

(function ()
{
    'use strict';

    angular
        .module('app.test_module', [])
        .config(config);

    /** @ngInject */
    function config($stateProvider, msApiProvider)
    {
        // State
        $stateProvider.state('app.test_module', {
            url      : '/myurl',
            views    : {
                'content@app': {
                    templateUrl: 'mytemplate.html',
                    controller : 'MyController as vm'
                }
            },
            resolve  : {
                test : function (apiResolver) 
                {
                    return apiResolver.resolve('myquery@query');
                }
            }
        });

    }

})();

和test.controller.js:

(function ()
{
    'use strict';

    angular
        .module('app.test_module')
        .controller('testController', testController);

    /** @ngInject */
    function testController($rootScope, apiResolver, dataToDisplay)
    {
        var vm = this;

        // Data
        vm.dataToDisplay = dataToDisplay;

        $rootScope.$on('$translateChangeSuccess', function () {
           // reload my content
            apiResolver.resolve('myquery@query')
            .then(function(result) {
                vm.dataToDisplay = result;
            });
        });
      }

      // more code here but not usefull in this example
 })();

可能有更好的方法,但它有效,我的数据在用户更改语言时被翻译:)