我是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
答案 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
})();
可能有更好的方法,但它有效,我的数据在用户更改语言时被翻译:)